如果没有共享列,是否有必要使用类表继承模式?

时间:2014-09-29 17:55:19

标签: sql inheritance sql-server-2012 database-schema class-table-inheritance

我正在考虑创建一个类表继承模式,如下所述:http://www.sqlteam.com/article/implementing-table-inheritance-in-sql-server

然而,我想要这个的理由似乎与大多数人所追求的不同。大多数人使用此模式来共享不同类型的列,例如将 FirstName 列放在公共 Person 表中,而不是在 Employee Customer 表中复制它。< / p>

但就我而言,除了密钥之外,实际上并不存在任何共享列。我只想在每个子表中使用一个公共密钥,以便它可以作为外键引用。例如,如果我希望每个人都有一个或多个电话号码,我可以使用 PhoneNumber 表来引用公共 Person 表中的ID;我不想要单独的 EmployeePhoneNumber CustomerPhoneNumber 表。

鉴于没有共享列(除了键),类表继承是否使用正确的模式?还是有另一种模式能够做得更好吗?

[编辑]

经过一些Google搜索后,看起来 Polymorphic Assoctiation 是我想要的正确术语,它通常以这种方式实现。如果有人对此有任何意见,我会暂时搁置这个问题。

0 个答案:

没有答案