ER 建模 - 子类关系和关系实体

ER Modelling - Subclass relationships & Relationship Entities

我有几个关于 ER 建模的具体问题。

为了提供一些具体的背景,这是一个大学项目,我似乎无法找到这些问题的具体答案。

背景

ER模型

Audit Time & Fee ER Model

问题

  1. Partner 和 Personal Assistant 都是子类实体,根据我的图表,存在强制的 1..1 关系。是不是"legal"子类之间有特定的关系?

  2. 我为 Staff 的子类使用了一个可选的或关系,我认为这很好,因为一个工作人员不能同时担任任何角色。作为子类唯一省略的角色是 "auditor"。如果我要包括这个,"optional, or" 是否会更改为 "mandatory, or",因为显示了所有可能的选项,并且工作人员必须是这 4 个角色之一?

  3. 在 Annual_audit 和 Staff 之间,我有一个关系实体(我可能会说这是错误的)。这是显示关系的正确方法吗?我也尝试过使用三元关系,但最终来回走了好几次。

  4. 欢迎任何一般性反馈或指出错误

非常感谢任何人能够提供的帮助。

Partner and Personal Assistant are both subclass entities and per my diagram there is a mandatory 1..1 relationship. Is it "legal" to have a specific relationship between subclasses?

子类型 and/or 超类型之间的关系是完全有效的。

I have used an optional, or relationship for the subclasses of Staff, which I think is fine as a staff member cannot be any of the roles at the same time. The only omitted role as a subclass is that of "auditor". If I were to include this, would "optional, or" change to "mandatory, or", as all possible options are shown and the staff member must be one of those 4 roles?

听起来不错。我宁愿使用 "disjoint" 而不是 "or".

Between Annual_audit and Staff I have a relationship entity (I could be calling this something wrong there). Is this the correct way to show the relationship? I tried using a ternary relationship as well, but ended up going backwards and forwards several times.

ER 模型中没有 "relationship entity" 这样的东西。您可能会想到网络数据模型中用于分解多对多关系的关联实体。 ER 模型直接支持多对多关系,为此不需要关联实体,尽管它们在将关系从属于其他关系方面仍有一席之地。

Annual_audit 在你的图中是一个弱实体关系。 Staff 是正则实体关系。他们之间是Charges time,是多对多的关系。如果您了解这些概念,则该符号具有足够的可读性。不过,陈的符号会更清楚地表示概念,而看起来像 table 模式的图表更适合物理模型。

图表的一个问题是箭头。它们与基数指示符不一致。它们的基数指示符看起来是正确的,但箭头大多没有指向有意义的方向。我会删除它们,除了从子类型指向 Staff.

的那个

最后,我建议您不要混用 OOP 和数据建模的概念和术语。数据建模用于表示知识,OOP 用于建模系统。 "subtyping" 用于 subtypes/subsets 实体集,"subclassing" 用于编程上下文中的派生 类。