为什么我们不将名称存储在单独的表中?

1 database-design

实际上,我永远不会将客户的姓名存储在单独的表中。但为什么不呢?这是一对多的关系(一个人可以有一个名字,但这个名字可以被多人使用)。在多个表上分离一对多关系不是正确的设计,还是我遗漏了什么?

Joe*_*own 9

不,将名称移出到另一个表绝对不是正确的规范化。

标准化减少了基于函数依赖的冗余,而不是基于数据值的巧合重复

假设您的数据库中有 100 个 Joe Smith。如果您将名称“Joe Smith”移到另一个表中,并且有 100 条记录指向该名称,那么当其中一个 Joe Smith 决定将其名称更改为“Bob Smith”时会发生什么情况?除非他们都一致改名,否则您无法以这种方式处理数据。