zua*_*auz 7 mysql database database-design normalization denormalization
我目前有3个表格,用于存储世界上所有主要城市的信息,每个地区/州对应这些国家/地区,以及每个城市/地区.
现在我在我的数据库中有大约6个其他表,例如需要完全相同的5列的用户或组织表:地址,郊区,城市,州/地区,国家.所以我想知道是否"良好"的规范化实践可能使用存储这5条信息的"位置"表,然后用户或组织表将有一个location_id来引用回来.

好主意还是坏主意?我也在考虑使用"联系人"表,其原理相同,包括home_phone,business_phone,mobile_phone,email_address,而不是在6个表中的每个表中都有相同的5列.
任何建议表示赞赏 非常感谢!
这是一组不必要的关系 - 你可以从城市获得地区/国家.
请注意,我在下图中的地区和国家/地区的方向错误,但它说明了我的意思!

当然,定义一个结合城市,国家和地区的视图来实际编写查询是有用的.我也认为在这种水平上正常化是一个非常好的想法.当你来到你的位置表添加一个新的字段时,你会很高兴你把它拆分出来;-)