首页 > 关于位置的数据库设计?

关于位置的数据库设计?

我有一个数据表如下:

出版社表

id int(11) //出版社ID
location int(11) //地理位置

根据行政区划

我们有

国家表

country_id int(11)
...

地区表

region_id int(11) //华中地区等地区的id
...

省级表

 province_id int(11)
 ...

市级表

 city_id int(11)
 ...

区级表

 city_part_id int(11)
 ...

上面的表从上到下都是has-a的关系,所以,他们从上到下是1对n的二元关系,而出版社的locationid ,我觉得应该是区级表的,citypart_id,这样我们要找到每个省的出版社列表的话就需要先找到每个市的表,还需要递归的找到每个区的表,这样就属于3个表之间的join,省级的出版社列表就得4次join了,华中地区的就得5次了,这样的查询我觉得应该很慢,请问有什么方法可以改进的?


google: nested set model
这是一种无线级分类的解决方案,希望能有帮助。

还有另外几种方法,优缺点不同,具体名字我忘记了,可以参考: 《sql反模式》一书


区级表 冗余 省、市、地区、国家 基本信息,查询就容易了 只是修改的时候比较麻烦

【热门文章】
【热门文章】