0

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

例如:

我有一个包含列的“地址”表:
id、street、city_id、state、country(或 id、street、city_id、state_id、state_id)

我有一个包含州和国家/地区的“州”表:id、name、level

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

4

1 回答 1

0

是的,这完全没问题。

Ed Gibbs 是对的,如果国家暗示国家,请不要这样做。

在您的示例中,为了清楚起见,最好将表拆分为两个不同的表,例如Stateand Country,但从一般的角度来看,这种做法没有问题。

这种情况(一个表中的 2 个 FK 都引用另一个表)经常发生,例如在一个messages表中,带有 asender和 a receiver,它们都将引用同一个users表。

于 2013-06-14T15:29:43.787 回答