关于地址,城市,国家数据的规范化问题

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列.

任何建议表示赞赏 非常感谢!

RB.*_*RB. 8

这是一组不必要的关系 - 你可以从城市获得地区/国家.

请注意,我在下图中的地区和国家/地区的方向错误,但它说明了我的意思!

在此输入图像描述

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