通过EntityName表映射M:N关系中的变量实体类型

时间:2011-09-07 11:25:02

标签: sql database-design relational-database data-modeling entity-relationship

我经常看到M:N关系的“链接”表,其中N可以是1..X类型的实体/类,因此该表包含引用ClassName表的classNameId和引用特定Entity表的classPK。 / p>

这是怎么称呼的?如果没有EntityName表,它是否具有相同效果的替代方案?

enter image description here

1 个答案:

答案 0 :(得分:0)

在ER模型中,实体和子实体可以通过继承关联,就像类和子类在对象模型中一样。将ER模型转换为关系模型时会出现问题。关系模型不支持继承。

调用设计模式称为泛化专业化或简称gen-spec。不幸的是,许多数据库教程都跳过了如何为gen-spec情况设计表。

但是它很好理解。它看起来与你的模型完全不同,但你可以创建视图,使它看起来像你的模型,如果有必要的话。查找“泛化专业化关系建模”以解释如何执行此操作。

主要技巧是专用表从通用表的PK“继承”其主键的值。这里“继承”的含义是它是相同值的副本。因此,每个专用表中的PK也是一个FK链接,返回到通用表中的correpsonding条目。