更新域(DB)实体时添加列或创建新表?

时间:2012-07-10 20:59:29

标签: mysql sql database database-normalization

在我的数据库中,我有一个名为Person的表,其中包含ID和名称的行,这暂时可以正常工作。稍后,在部署之后,我意识到我希望一个人也有一个地址(每人一个地址)。做这个的最好方式是什么?使用地址的新列更新表,或者为地址创建新表地址并使用引用链接这两个表?或者,也许,我应该有一个表Person,一个表Address,以及一个表PersonAddressRelation和两个键。

我对表规范化了解一点。我的问题是:如果你预测它们可能会改变,如何建立一个表?

2 个答案:

答案 0 :(得分:2)

始终在每个表中使用主要的自动增量键;并确保从一开始就拥有最佳的数据库结构;为什么?因为一旦你开始大肆宣传信息,数据库表就会增加,你不知道它们会有多大;如果我们说每桌需要10百万条信息,你需要添加一个新字段,没关系,这需要一些时间......但是如果你尝试的是1亿......你就完成了...游戏结束......所以,从一开始就尽力而为,并始终通过唯一身份识别每个信息

答案 1 :(得分:1)

我建议额外的address表。这样你可以在person表中添加一个外键,也许有一天你需要有多个地址的人。