两个相同的外键从同一个表进入另一个表?

时间:2013-06-14 15:26:24

标签: mysql ruby-on-rails-3 database-design foreign-keys

表中有两列可以是同一个表中的外键吗?

例如:

我有一个带有列的'地址'表:
id,street,city_id,state,country(或id,street,city_id,state_id,state_id)

我有一个'州'表,其中包含州和国家/地区: id,name,level

那么我可以将states_id放在地址表的州和国家(如上面的括号中)吗?

1 个答案:

答案 0 :(得分:0)

是的,那完全没问题。

埃德吉布斯是对的,如果国家暗示这个国家的话,不要这样做。

在你的例子中,为了清楚起见,最好将表格分成两个不同的表格,比如StateCountry,但从一般的角度来看,这种做法没有问题

这种情况(表中的2个FK都引用了另一个表)经常发生,例如在messages表中,senderreceiver两者都会引用相同的users表。