关联实体和关联关系属性之间的区别?

Posted

技术标签:

【中文标题】关联实体和关联关系属性之间的区别?【英文标题】:Difference between associative entity and associative relationship attribute? 【发布时间】:2015-05-08 10:25:54 【问题描述】:

关联实体和关联关系属性有什么区别?在我的书《现代数据库管理》(Hoffer,第 11 版)中,作者指出两者之间存在差异。虽然,它并没有真正解释为什么会有差异,相反,它只是举例说明了它们的不同之处。

据我所知,具有关联的 single 属性的关系是关联关系属性,并用虚线表示到圆角矩形,该矩形内具有该属性。而关联实体是描述关系的多个属性。两者都只能用于 ER 图表中的多对多关系。我的思维过程正确吗?

编辑-另外,我忘了提到,对于关联实体,它们也有一个唯一标识符的属性,至少,这是我的想法。

【问题讨论】:

【参考方案1】:

associative entity 是以多对多关系关联另外两个表的表。

关联关系属性是由于多对多关系而存在的关联实体的属性。

这是一个例子。假设我们有以下表格。

User
----
User ID
User Login Name
User Name
User Password

Permission
----------
Permission ID
Permission Name
Permission Description

好的,我们在用户和权限之间有一个多对多的关系。一个用户可以拥有多个权限,并且一个权限可以在多个用户之间共享。

所以,我们创建了一个关联实体。

UserPermission
--------------
User ID
Permission ID
Permission Granted Time Stamp

权限授予时间戳是一个关联关系属性。它不适合 User 表和 Permission 表。这是关联的一个属性。

【讨论】:

很好的解释!我从没想过这些术语有自己的名字。对我来说,这只是一个包含行和列的关系表。 是什么阻止我说 Permission Granted Time Stamp 是描述关系的属性?换句话说(就像书中显示的那样),您也可以拥有自己的属性。因此,从您的示例中,Permission Granted Time Stamp 是一个描述关系的属性,而不是关联实体中的一个属性(也描述了关系)。 @user1342086:我不会使用“描述”这个词。我会说“作为结果而存在”。我不确定你想说什么。权限授予的时间戳值作为关系的结果而存在。因此,它存储在关联实体、关联表或联结表中。【参考方案2】:

在 ER 图中,M:N 关系可以具有关联实体或描述关系的单个关联属性。不同之处在于,关联实体必须具有唯一标识符,而关联属性则没有。根据本书,关联实体必须具有:

1-all the relationships for the participating entity types are M:N relationships 

2-the resulting associative entity type has independent meaning to the end user and has an identifier 

3- the entity has one or more attributes 

4-the entity participates in 1 or more relationships independent of the entities related in the associated relationship.

【讨论】:

你能举出第四点的例子或添加更多细节吗?

以上是关于关联实体和关联关系属性之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

类之间的关系

Flask/SQLAlchemy - 多对多关系的关联模型和关联表之间的区别?

Hibernate框架学习之注解配置关系映射

hibernate学习---关联关系映射

如何看待因果关系与关联规则有啥区别?

类之间的关系——宅客