我正在尝试使用对象角色建模对概念进行建模,但找不到必要的约束类型。我想知道它是否存在。
以下是三个事实:
- 商品必须属于一个商品类别
- EntityDescriptor 必须属于 CommodityCategory
- EntityDescriptor 可能用于一种商品
这很容易建模:
但这里有一个约束:
- 如果 EntityDescriptor 用于 Commodity,则 Commodity 引用的 CommodityCategory 必须等于 EntityDescriptor 引用的 CommodityCategory
例如,假设我们有这些商品。
*--------*------------* | 商品类别 | 商品 | *--------*------------* | 燃料 | 气体 | | 燃料 | 汽油 | | 食品 | 糖 | *--------*------------*
这些是合法的
*--------------------*--------------------*---------- -* | 实体描述符 | 商品类别 | 商品 | *--------------------*--------------------*---------- -* | 1 | 燃料 | | | 2 | 燃料 | 气体 | | 3 | 食品 | | | 4 | 食品 | 糖 | *--------------------*--------------------*---------- -*
但这是非法的
*--------------------*--------------------*---------- -* | 实体描述符 | 商品类别 | 商品 | *--------------------*--------------------*---------- -* | 5 | 食品 | 汽油 | *--------------------*--------------------*---------- -*
我查看了Equality约束,但那是关于关系的存在,而不是关系中的实际值。
有什么东西可以用来模拟这个约束吗?