uml中的主键/外键

时间:2012-04-23 14:20:10

标签: uml

我正在根据用MySQL workbench生成的ERD做一个UML模型。但现在我对类图中的主键和外键表示有疑问。

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

感谢

3 个答案:

答案 0 :(得分:1)

首先:你为什么要用UML绘制它?如果您已经有ERD,那么您希望使用ERD未提供给您的UML类图来说明哪些附加/备用属性?

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

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

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

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

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

另一种选择是使用Executable UML的规则。它直接在类图上表示PK('Identifiers'}和FKs('参考属性'}。因此它最接近于捕获ERD中的所有内容。

总而言之:没有UML强加的正确答案。这一切都取决于你想要与图表沟通的内容。

第h

答案 1 :(得分:1)

您可以使用/创建“数据库配置文件”来使用此信息注释您的UML模型。如果没有配置文件,您可以使用OCL指定唯一性约束,而普通关联应该足以表示在数据库级别转换为外键的内容

答案 2 :(得分:0)

您可以使用EclipseUML Omondo试用版并反转您的数据库。

您将获得所需的信息,然后可以使用免费或开源工具进行复制。