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

时间:2015-03-26 12:31:41

标签: uml entity-relationship data-modeling

我有一个房地产物业实体。

我有一个具有属性的房地产物业类别实体:

  • 号码
  • 类型(房子,公寓,工作室,田地,土地,办公室, 商业)
  • 报价(出租,出售)
  • 价格
  • 表面

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

示例:

表示type = house或appartement

  • 房间数
  • 车库数量
  • 装备厨房
  • 花园表面

表示type = house

  • 楼层数

表示type = not field(每种类型,但字段)

  • 描述

表示type = office或commercial

  • 表面
  • 空格数

如何在ER图(Peter Chen表示法)中描述这些特化,并在类图中将其翻译成后。

修改参见附图 enter image description here

1 个答案:

答案 0 :(得分:0)

你的方法几乎是正确的。唯一的事情是你需要在大括号中包围约束

  

根据以下BNF,约束在大括号({})中显示为文本字符串:

     

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

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

此外,您应该删除if

不幸的是,Superstructures是一个非常糟糕的文档。我无法找到<Boolean-expression>的定义,但我会使用==代替=,就像大多数类C语言一样。所以你的一个约束应该是

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