如何根据另一个实体的属性值创建派生实体(具有自己的属性)
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"}
我有一个房地产 属性 实体。
我有一个房地产 属性 类别实体,其属性为:
- 人数
- 类型(房子、公寓、工作室、场地、土地、办公室、 商业)
- 报价(出租,出售)
- 价格
- 表面
根据 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"}