我目前正在学习一个关于数据库开发的单元,我正在学习一个关于规范化的模块,我相信这个ERD已经完成了第二种形式的规范化,因为每个表都有一个主键,所有数据都是原子的,并且没有重复的组,并且我不认为存在任何部分关键依赖性。但我是新人,理解还很薄弱。所以我想知道是否有人可以看看并让我知道他们的想法以及可能的任何帮助,我将不胜感激。
编辑:我不确定是否要抓取 PostCodeAndCity 表并将城市数据包含在地址表中,但是我的学习材料建议这样做。
编辑2:由于创建了这个问题的帐户,我没有声誉来支持你的答案,但我只是想感谢所有花时间分享你的知识的人,我真的很感激它,它进一步提供了帮助我的大大!
最大的问题是订单表。目前,用户只能下一个订单。您将需要多个 order_id 来购买许多产品。您实际需要的是两张表:一张用于保存购买总额(将其视为您在收据中找到的所有元信息),一张包含与特定 order_id 关联的产品和数量。您还希望维护所购买产品的价格,因为目录产品的价格会发生变化。
有趣的是,我们的书处理的数据库问题完全相同,并且重点关注设计。它处于抢先体验阶段,所以我没有实时显示图表的第五章,但您可以在此处查看需求分析以获得一个想法: https: //livebook.manning.com/book/grokking-relational-database -设计/第3章/v-1/点-18510-126-133-1
邮政编码城市:
地址:
拥有 postalCodeCity 表可确保城市和邮政编码始终相关。
另一件需要注意的事情是,订单通常被建模为订单和订单行——这是两个实体。客户与订单相关联。订单包含订单 ID(或编号)等信息,可唯一标识订单、订单日期和客户(下订单的人)。并且,一个订单有多行。每个订单行都有订单行 ID、订单 ID、产品 ID 和订单数量。这是客户和订单的一般概念。