您好,我有两个具有多对多关系的表和一个联结表。 简而言之,具有不同属性的产品也随之增加了价格。 为了更清楚地说明我是产品和属性表。
+-------------+------------+----------------- --+
|产品 |属性|属性产品 |
+------------------------+------------+--------------------+
|编号 |编号 |产品 ID |
|名称 |名称 |属性 ID |
|描述 | |属性值 |
|价格| |已添加价格 |
+------------+------------+--------------------+
由于 Laravel 不支持多列主键,我希望 attribute_product
表有一个主键,当我调用 $product->attribute->attach()
它会自动增加它,所以我可以执行以下操作:
+---------+----------------------+
|购物车 |购物车产品 |
+---------+--------------------+
|编号 |购物车 ID |
|用户 ID |属性产品 ID |
+---------+----------------------+
在我的脑海中,我将为attribute_product
表创建一个模型,并将其命名为Item
,因此购物车可以有多个项目,我可以将其显示为$cart->items->groupBy('product_id')
这样我就可以将所有内容放入用户的购物车中。
非常感谢任何解决方案或更好的建议。
最佳答案
嗯,我认为也许你没有以正确的方式关注它。如果您有belongsToMany
产品和属性之间的关系,是因为一个产品可能具有多个属性,而不是不同的产品。
在您的购物车中,您应该添加产品,而不是产品的特定属性。例如:
I want a water bottle, but only the water, without the bottle.
这没有道理,没有瓶子就买不到水瓶。在这种情况下,您将购买水,而不是水瓶,这应该是不同的产品,而不是同一个产品。
cart_product
表格应该看起来像这样,只要没有令人信服的理由不能如此。
+---------+----------------------+
| cart | cart_product |
+---------+----------------------+
| id | cart_id |
| user_id | product_id |
+---------+----------------------+
关于php - 产品具有属性(变体)数据库设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40605728/