簡體   English   中英

具有屬性(變量)產品的數據庫設計?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM