在SQL Server中实现Polymorphic Association的最佳方法是什么?

Mar*_*ark 53 sql-server associations polymorphic-associations database-normalization

我有很多实例需要在我的数据库中实现某种多态关联.我总是浪费大量的时间来思考所有的选择.这是我能想到的3.我希望有一个SQL Server的最佳实践.

这是多列方法

多列方法

这是没有外键的方法

没有外键方法

这是基表方法

基表方法

cms*_*sjr 3

两种最常见的方法是每类表(即基类的一个表和每个子类的另一个表,其中包含描述子类所需的附加列)和每层次表(即一个表中的所有列,其中一个或多个)列以允许区分子类)。哪种方法更好实际上取决于您的应用程序和数据访问策略的具体情况。

通过反转 FK 的方向并从父级中删除额外的 id,您将在第一个示例中拥有每个类的表。另外两个本质上是每个类的表的变体。

  • 我相信您很可能在这里描述继承而不是多态关联。是的,它们是相关的,因为只有当你有继承时,你才具有多态关联,但我仍然不确定如何解决关联部分。Object1、Object2、Object3都继承或实现了“Object”,但是“Something”又该如何与之关联呢? (2认同)