如何根据另一个实体的属性值创建派生实体(具有自己的属性)

How to create derived entities (with their own attributes) based on the attributes values of another entity

我有一个房地产 属性 实体。

我有一个房地产 属性 类别实体,其属性为:

根据 type 和 offer 的值,我需要创建具有自己属性的专用实体。

示例:

类型 = 住宅或公寓

类型=房子

for type = not field(除了字段之外的每个类型)

类型 = 办公室或商业

我如何在 ER 图(Peter Chen 表示法)中描述这些专业化并在 class 图中将其翻译成后记。

编辑见附图

您的方法几乎是正确的。唯一的问题是你需要用大括号

包围约束

A Constraint is shown as a text string in braces ({}) according to the following BNF:

<constraint> ::= ‘{‘ [ <name> ‘:’ ] <Boolean-expression> ‘ }’

(来自上层建筑 2.1.1 第 61 页)

您还应该删除 if

不幸的是,《上层建筑》是一份非常糟糕的文件。我无法找到 <Boolean-expression> 的定义,但我会使用 == 而不是大多数 C 类语言中的 = 。所以你的约束之一应该是

{Property.Category.Offer == "for rent"}