[英]Products with attributes (variants) database design?
您好,我有兩個具有多對多關系的表和一個聯結表。 簡而言之,具有不同屬性的產品會增加價格。 為了使其更清楚,我是產品和屬性表。
+-------------+-----------+-------------------+ | product | attribute | attribute_product | +-------------+-----------+-------------------+ | id | id | product_id | | name | name | attribute_id | | description | | attribute_value | | price | | added_price | +-------------+-----------+-------------------+
由於Laravel不支持多列主鍵,因此我希望attribute_product
表具有主鍵,當我調用$product->attribute->attach()
它會自動對其進行遞增,因此我可以執行以下操作:
+---------+----------------------+ | cart | cart_product | +---------+----------------------+ | id | cart_id | | user_id | attribute_product_id | +---------+----------------------+
在我的腦海中,我將為attribute_product
表創建一個模型,並將其命名為Item
,因此一個購物車可以包含多個Items,我可以像$cart->items->groupBy('product_id')
一樣顯示它,以便可以使用它用戶購物車中的所有內容。
非常感謝任何解決方案或更好的建議。
好吧,我認為您可能沒有以正確的方式關注它。 如果您在產品和屬性之間具有belongsToMany
關系,那是因為一個產品可能具有多個屬性而不是另一個產品 。
在購物車中,您應該添加產品,而不是產品的特定屬性。 例如:
我想要一個水瓶,但是只有水,沒有水瓶。
這沒有道理,沒有水瓶就不能買水瓶。 在這種情況下,您將購買水,而不是水瓶,水應該是不同的產品,而不是同一產品。
cart_product
表應該看起來像這樣,只要沒有令人信服的理由就可以。
+---------+----------------------+
| cart | cart_product |
+---------+----------------------+
| id | cart_id |
| user_id | product_id |
+---------+----------------------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.