我正在尝试为鞋子目录设计一个数据库,但我对存储有关尺码的信息感到困惑:我不知道存储每件商品尺码的最好方法是什么。这是我的第一个模式,我试图通过为每个项目设置id和为每个唯一项目设置item_id (具有不同大小)来解决这个问题。

因此,问题是:我可以改进什么来使其更好、更快地工作?(桌子产品将包含超过2-3个密耳),这是存储大小的最佳方式吗?
非常感谢!
发布于 2018-12-18 23:21:13
性能取决于查询和应用程序类型(OLTP或OLAP)。您至少还需要索引所有外键列。
以下表格似乎是必需的:models (包含产品通用规格)和product_shops (M:M)。
发布于 2018-12-19 04:57:10
嗯,我认为有几个地方需要改进。
Products表中的size_id, sport_id, vendor_id, shop_id不应存在。如果您想要保持当前的设计,您应该在其他相应的表中具有product_id。在我看来,这两种解决方案都不能完全满足逻辑,但是在Sizes表中有多个product_id为s的行要比在Products表中有多个size_ids的行要好。由于其他属性/外键的原因,您可能真的希望保持Products表中的products行不被复制。(以Categories为例,同样的原则也适用于此。)否则,您将使用不同的性别/组/大小/商店/供应商/运动复制相同的Product行,因此N行主要共享数据。相反,将product_id提取到其他表将使您的连接更有效率,并且您将能够更有效地过滤‘37码的鞋子’之类的内容。或者更好,创建另一个名为的表-确保您拥有每个product.Products表中删除,它们更多的是分析字段,而不是产品。迁移到他们自己的(Analytics?)带有product_id.genger_id,它应该是gender_id。同样的规则也适用于第1点。https://stackoverflow.com/questions/53832553
复制相似问题