日期:2014-05-18  浏览次数:20527 次

|M| 关于数据库中的表设计的时候,要不要把城市名称和城市ID都写进表里 请大家指点指点
比如我有表
行业表
ID  类型
1  农业
2  工业
3  商业

城市表 
ID  名称
1  广州
2  北京
3  上海

然后现在要设计一个公司表
我本来的是
ID 公司名 城市ID 类型ID
1 微软  3   3
------------------------
但如果这样的话当数据量有100万条或更多的时候
如果进行查询的话就要进行三个表联合查询
所以我想设计成
ID 公司名 城市ID 城市名 类型ID 类型名
1 微软  3   上海  3   商业

但如果这样的话就会造成数据的不完整
请大家指点指点

谢谢


------解决方案--------------------
像城市这样的数据在业务表中直接保存汉字,查询也不用关联。
------解决方案--------------------
建议还是不要把城市名称放到里面去,这样使用起来有可能会出现数据不一致的情况,比如有的记录写上海,有的记录写上海市,给查询和维护带来不便。
因为城市表肯定不会大再说mssql也会优化,多表的联合应该不会在性能上有什么问题。
------解决方案--------------------
设计成这样子还不如不要行业表和城市表

联合查询的确不如单表查询快,但是城市表和行业表一般也不会很大,浪费在连接上的效率并不会很多,而且LZ要考虑一下insert和update的效率,这种没有必要的冗余还是不需要了