日期:2014-05-16  浏览次数:20895 次

两个表互为外键怎么办?
比如:表1(省份):省份编号,省份名称,省会城市编号(fk)
  表2(城市):城市编号,城市名称,省会城市编号(fk)
省会城市编号(fk)和省会城市编号(fk)互为外键,如何插入删除,或者有其它的设计方法,万分感谢!!



------解决方案--------------------
set @@foreign_key_checks=OFF 
临时关闭检查。
------解决方案--------------------
表1(省份):省份编号,省份名称
表2(城市):城市编号,城市名称,省份编号(fk),省会标记

可以根据省会标记这列来判断是否为省会,如是省会则记1,否则记0
------解决方案--------------------
但是在增加省会的时候,要把同省份的其他城市的这个标记清0
------解决方案--------------------
如果有可能重新设计表结构。呵呵
------解决方案--------------------
比如:表1(省份):省份编号,省份名称,省会城市编号(fk)
表2(城市):城市编号,城市名称,省会城市编号(fk)
省会城市编号(fk)和省会城市编号(fk)互为外键,如何插入删除,或者有其它的设计方法,万分感谢!!

*************************

为什么表2的省会城市编号(fk)要以表1的省会城市编号为外键呢?就保留一个单方向的外键不就行了吗?
表1(省份):省份编号,省份名称,省会城市编号 (fk)
表2(城市):城市编号,城市名称,省会城市编号 (城市编号,省会城市编号为联合主键)