uml中的主键/外键

use*_*462 5 uml

我正在使用MySQL工作台生成的ERD做一个UML模型.但现在我对类图中的主键和外键表示有疑问.

在传统的UML图中,我们应该将主键作为每个类的属性包含在内?例如,id_user或者id_list?关于外键?这些被忽略为属性但反映为关联?

谢谢

sfi*_*nie 3

首先:为什么要用 UML 来绘制它?如果您已经有了 ERD,您想用 ERD 没有提供的 UML 类图来说明哪些附加/替代属性?

为什么?因为UML是一个工具。假设该图仅供人类使用(即您不是从中生成代码),那么您应该使用 UML 来公开您试图传达的信息。

作为通用标准 UML 没有提及如何形式化身份 (PK/FK)。UML 遵循 OO 习惯用法,即每个对象都有隐式标识 - 因此您不需要显式指定它。因此,在最简单的情况下,您可以:

  • 将PK属性列为普通属性;
  • 完全忽略 FK 属性。

如果这满足您的建模需求,那么您就完成了。

作为第二个改进,您可以使用 ocl 约束标记 PK 属性isUnique(),再次忽略 FK。

另一种选择是使用Executable UML的规则。它直接在类图上表示 PK('标识符'} 和 FK('引用属性'})。因此它最接近捕获 ERD 中的所有内容。

总而言之:没有 UML 强加的正确答案。这完全取决于您想要与图表传达什么信息。