我正在使用MySQL工作台生成的ERD做一个UML模型.但现在我对类图中的主键和外键表示有疑问.
在传统的UML图中,我们应该将主键作为每个类的属性包含在内?例如,id_user或者id_list?关于外键?这些被忽略为属性但反映为关联?
谢谢
首先:为什么要用 UML 来绘制它?如果您已经有了 ERD,您想用 ERD 没有提供的 UML 类图来说明哪些附加/替代属性?
为什么?因为UML是一个工具。假设该图仅供人类使用(即您不是从中生成代码),那么您应该使用 UML 来公开您试图传达的信息。
作为通用标准 UML 没有提及如何形式化身份 (PK/FK)。UML 遵循 OO 习惯用法,即每个对象都有隐式标识 - 因此您不需要显式指定它。因此,在最简单的情况下,您可以:
如果这满足您的建模需求,那么您就完成了。
作为第二个改进,您可以使用 ocl 约束标记 PK 属性isUnique(),再次忽略 FK。
另一种选择是使用Executable UML的规则。它直接在类图上表示 PK('标识符'} 和 FK('引用属性'})。因此它最接近捕获 ERD 中的所有内容。
总而言之:没有 UML 强加的正确答案。这完全取决于您想要与图表传达什么信息。