表中有两列可以是同一个表中的外键吗?
例如:
我有一个带有列的'地址'表:
id,street,city_id,state,country(或id,street,city_id,state_id,state_id)
我有一个'州'表,其中包含州和国家/地区: id,name,level
那么我可以将states_id放在地址表的州和国家(如上面的括号中)吗?
答案 0 :(得分:0)
是的,那完全没问题。
埃德吉布斯是对的,如果国家暗示这个国家的话,不要这样做。在你的例子中,为了清楚起见,最好将表格分成两个不同的表格,比如State
和Country
,但从一般的角度来看,这种做法没有问题
这种情况(表中的2个FK都引用了另一个表)经常发生,例如在messages
表中,sender
和receiver
两者都会引用相同的users
表。