こんにちは私は多対多の関係とジャンクションテーブルを持つ2つのテーブルを持っています。要するに、価格を付け加えた異なる属性を持つ製品。 私は製品と属性のテーブルです。属性(バリアント)データベース設計の製品?
:Laravelとして
+-------------+-----------+-------------------+ | product | attribute | attribute_product | +-------------+-----------+-------------------+ | id | id | product_id | | name | name | attribute_id | | description | | attribute_value | | price | | added_price | +-------------+-----------+-------------------+
attribute_product
テーブルをしたいと私は
$product->attribute->attach()
を呼び出すとき、それは自動的にそれをインクリメントし、私は次の操作を行うことができ、複数列の主キーをサポートしていません。私の頭の中で
+---------+----------------------+ | cart | cart_product | +---------+----------------------+ | id | cart_id | | user_id | attribute_product_id | +---------+----------------------+
私はつもりはattribute_product
テーブル用のモデルを作成し、複数のアイテムを持つことができItem
ため、カートと呼んだ、と$cart->items->groupBy('product_id')
はので、私はそこにそれをすべて持つことができるように、私はそれを表示することができますユーザのカート。
いずれかの解決策またはより良い提案は非常に高く評価されています。
たとえば、製品が1つの属性に2つの値を持つ場合、たとえば教えてください。サイズは小と大の両方が可能です。カート内の製品が大型か小型かをどのように知ることができますか? –
@ArmanMomeni大丈夫、私はあなたが言うことを見る。とにかく、製品は製品でなければならず、人々はカートに製品を追加します。あなたのアプローチでは可能ですが、商品に異なる属性がない場合はどうなりますか?必要がない場合は、行を作成する必要があります。サイズごとに製品を作成し、 '属性'テーブルの名前を 'コレクション 'のようなものに変更することを関連付けると思います。次に、商品を表示すると、同じ商品のさまざまなオプションがある場合、amazonのように同じコレクションの商品をさまざまなオプションで表示することもできます。 –
最後に、 "同じ"製品のそれぞれのサイズがバックエンド上で異なる一意のコードを持つことが想定されています。もちろん、すべてはあなたが最後に望むものに依存します。 –