SQL多个主表共享公用表

时间:2014-04-18 16:48:36

标签: sql postgresql foreign-keys

我们有许多顶级表格(例如,room_traveler,air_traveler),它们希望与普通数据共享一个表格(例如,address_traveler)。我们认为这样做的唯一方法是让公共表具有每个顶级表的外键列(例如,address_traveler将有两个外键列,一个用于room_traveler,一个用于air_traveler)。

这可行,但我们希望有更多顶级表需要使用此公用表。这意味着我们必须继续为每个新的顶级表添加外键列到公共表。

我有更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

这不是一个好的解决方案。它使查询和维护变得复杂。

我假设address_traveler表包含地址。然后给它一个主键...和id列。然后在room_traveler和air_traveler表(以及将来可能出现的任何其他表)中添加一个引用address_traveler表的address_id列。