首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >此SQL模式中有哪些可以改进的地方?

此SQL模式中有哪些可以改进的地方?
EN

Stack Overflow用户
提问于 2018-12-18 19:59:21
回答 2查看 247关注 0票数 0

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

因此,问题是:我可以改进什么来使其更好、更快地工作?(桌子产品将包含超过2-3个密耳),这是存储大小的最佳方式吗?

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2018-12-18 23:21:13

性能取决于查询和应用程序类型(OLTP或OLAP)。您至少还需要索引所有外键列。

以下表格似乎是必需的:models (包含产品通用规格)和product_shops (M:M)。

票数 1
EN

Stack Overflow用户

发布于 2018-12-19 04:57:10

嗯,我认为有几个地方需要改进。

  1. 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.
  2. Clicks /所需的所有列-如果它们是计数,您可能应该将它们从Products表中删除,它们更多的是分析字段,而不是产品。迁移到他们自己的(Analytics?)带有product_id.
  3. You的表格可能在表格中输入了genger_id,它应该是gender_id。同样的规则也适用于第1点。
  4. 如果组/类别可以反规范化(例如:组:鞋,类别:运动鞋),而您在其中一项中没有足够的内容,我建议您取消规范化并合并这两个字段。
  5. 正如评论中还建议的那样,您绝对应该为外键字段建立索引。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53832553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档