我有一个项目,我有产品和SKU的。每个产品都有一个或多个SKU的。
我还有商店,它可以有很多到多个产品,所以一个产品可以属于多个商店,一个商店可以有多个产品。
要完成,每个商店可以选择哪个SKU,他们想要的产品。所以我作为一个商店可以选择出售的T恤白色,这可能有(XS,S,M,L),我可以选择(XS,S)作为SKU的我想为我的商店。
目前
如你所见,一家商店与产品和SKU连接在一起。但我有一种感觉,那是出了点问题。
我的shop_skus和shop_products没有连接,所以一家商店的产品和sku的产品可能不匹配。
,我该怎么解决这个问题?
谢谢您抽时间见我!

发布于 2017-07-31 19:36:24
如果每个商店都有一组产品,而且每个商店-产品关系都有一组SKU,我认为您需要使用一个中间模型来处理这种关系。您可以创建一个名为CarriedProduct的模型,它与商店、产品和与SKU的一对多关系有关系。
通常,要向关系添加附加信息,即。Shop->Product,您将在relation表中使用透视列。但是由于有多个skus,枢轴列不会切割它。
发布于 2017-07-31 21:47:08
我的shop_skus和shop_products没有连接,所以一家商店的产品和sku的产品可能不匹配
据我所知,在商店和产品之间有两种间接关系:shops -> shop_skus -> skus -> products和shops -> shop_products -> products。一致性问题可以用复合外键来解决。
shop_skus.product_idshop_skus(product_id, sku_id) -> skus(product_id, id)shop_skus(shop_id, product_id) -> shop_products(shop_id, product_id)
可以更改键中列的顺序。这取决于哪些索引可以更好地用于查询。
使用这些外键,您只能插入shop-skus,这两个表都可以重放:shop_products和skus。
更新
如果我正确理解你的评论,你需要一个关系的商店SKU和产品段塞。
有一家商店在卖
product | slug | SKUs
------------|-------------|-----
white shirt | Batman | M,L
white shirt | Wonderwomen | XS,S在这种情况下,我要做以下几点:
shop_products.idshop_skus.product_idshop_skus.product_shops_idshop_skus(product_id, sku_id) -> skus(product_id, id)shop_skus(product_id, product_shop_id) -> shop_products(product_id, id)
如果存在折叠外键,也可以/应该删除该外键:
shop_skus(sku_id) -> skus(id)因为这是多余的。
https://stackoverflow.com/questions/45423895
复制相似问题