日期:2014-05-17  浏览次数:20964 次

纠结一个行政区划字段的存储问题,盼指教
半道接手一个项目,一个行政区划代码表A,id(number) code(varchar2),parentcode(varchar2),name(varchar2),通过parentcode反应省、市、县、乡镇、村层次关系,这个问题不大。

另外业务表B里存储了行政区划的字段,纠结这个字段是存ID还是存CODE。像这类码表个人一般喜欢存ID,仅用code和parentcode反应层次和排序,便于调整。

问题在于业务表B数据量有点大,行政区划代码到村一级也不小,用户对于业务表B这个字段可能存省、市、县乡镇村任何一级代码,另外还有一个字段要存放行政区划代码对应的中文名称name,操作上要求输入一级要将其及下级的数据都查询出来。存code可以用代码like来查询,但是碰到行政区划调整,比较撤乡并镇这些,那所有业务表里这个字段都得去维护一次,觉得麻烦。存ID,用start with connect by子查询,不知道效率怎么样,而且对于行政区划撤销这种需要也得去维护。有点纠结...盼有过项目经验的前辈指导指导。

自己现在倾向于存code的了,因为及时行政区划有调整,还有一个中文name字段也是需要去同步更新的,大家有好的方案吗?

------解决方案--------------------
不知道你这个代码表A设计个id(number)字段有什么意义,,code明显就可以作为主键使用
------解决方案--------------------
一般存code,可读性强些,
有id导入数据方便,比如xls文件有重复code的记录,导入后再去除重复的。