继承(subclass)
incorrect
image.png
correct
image.png
其实就是把共性部分抽出来,个性化部分在各自的表
image.png
聚合(aggregation)
image.png image.png可以看到,这个设计,其实就是一对多。另外留意到components这个表,主键是4个字段组成,所以,不要嫌字段多,该怎样就怎样
递归(recurrsive association)
incorrect
image.png
correct
image.png
表现为一个自环。
看表设计会更清晰,managerId也是employeeId,也来自于employeeId:
image.png
另一种方式更好,用专门的表来记录上下级关系,而且支持多对多:
image.png
UML一些经典实例
多对多
通常的做法是定义一个专门的类来维护这个关系,举例:
员工与公司
假设员工可以受雇于多个公司
账户与基金
image.png递归(自环)
文件与文件夹
文件夹其实是一种特殊的文件
image.png
这篇文章介绍了文件与文件夹的另一种画法,我觉得它不如前面的画法:
网友评论