数据库:拆分表

时间:2011-01-11 09:37:24

标签: database database-design

我最近阅读了很多关于数据库,冗余等的内容。

现在我正在构建一个用户表来保存所有信息 关于在我的系统中注册的用户。

用户表应该包含:id(PK),用户名,密码,电子邮件和地址(街道, 城市,邮政编码,国家)。

我应该拆分地址并创建另一个只保存用户地址的表, 喜欢:id(PK),街道,城市,邮政编码,国家,user_id(FK))? 我甚至可以将邮政编码和国家分成新表格。

这是否有意义,尤其是将邮政编码和国家/地区拆分为新表格?

干杯!

4 个答案:

答案 0 :(得分:1)

我在这里想到了一些冗余方面。 存储例如不是更好吗?国家在一张桌子里 而不是在我的用户表中一遍又一遍地写它? - >冗余

答案 1 :(得分:1)

对于大多数情况,答案是否定的。为什么要额外加入才能找到地址?为什么有两个一对一关系的表?

正如其他人所说,除非你确定一些性能提升,否则不要让你的生活复杂化。

答案 2 :(得分:0)

我个人认为将这些细节拆分为单独的表格没有任何附加价值。

即使您不太经常使用地址/邮政编码,也始终只能使用SELECT username,email..而不是SELECT *..

选择必要的字段

答案 3 :(得分:0)

您应该根据要求执行此操作,而不是因为您可以。因此,您应该具有功能需求(例如,您希望为每个用户存储多个地址)或您想要解决的技术问题(性能,安全性等)。对我来说,后者在如此简单的桌面设计上听起来不太可能,所以根据你提供的信息,我建议坚持使用一张桌子。