我正在考虑创建一个类表继承模式,如下所述:http://www.sqlteam.com/article/implementing-table-inheritance-in-sql-server
然而,我想要这个的理由似乎与大多数人所追求的不同。大多数人使用此模式来共享不同类型的列,例如将 FirstName 列放在公共 Person 表中,而不是在 Employee 和 Customer 表中复制它。< / p>
但就我而言,除了密钥之外,实际上并不存在任何共享列。我只想在每个子表中使用一个公共密钥,以便它可以作为外键引用。例如,如果我希望每个人都有一个或多个电话号码,我可以使用 PhoneNumber 表来引用公共 Person 表中的ID;我不想要单独的 EmployeePhoneNumber 和 CustomerPhoneNumber 表。
鉴于没有共享列(除了键),类表继承是否使用正确的模式?还是有另一种模式能够做得更好吗?
[编辑]
经过一些Google搜索后,看起来 Polymorphic Assoctiation 是我想要的正确术语,它通常以这种方式实现。如果有人对此有任何意见,我会暂时搁置这个问题。