自反关联和自连接的区别

67 篇文章 2 订阅

RuYi 2020-5-2 15:23

1130.png

 

我看您书里面讲了自反关联,是不是对应于数据库的自连接?

UMLChina潘加宇

本来不应该回答这个不该成为问题的问题。因为你这样问表明不只是不了解自反关联,可能也对自连接有误解,应该再去学习和复习基本知识才对。不过,这个问题背后也反映了一些其他人也会有的概念混乱,顺便展开说一下。

先回答你的问题:自反关联(self-association)指一个类的不同实例之间存在静态关系,例如你给的图中,不同人员实例之间会有夫妻关系。映射到关系数据库可能会得到一张“夫妻关系”表,存放两个人员ID,也可能是人员表里加一个夫(妻)ID。

自连接(self join)指一个表和它自身做连接运算(动态)。以上图为例,可以通过自连接运算查找姓名相同的人员,from 人员 p1,人员 p2 where p1.姓名=p2.姓名。

展开说一下:关联是系统要记录的静态关系,即所谓“数据”,例如,张三和李四是夫妻,这个事实一直存在,你随便找个时间点问“张三和李四是夫妻吗”,得到的回答应该是肯定的,除非他俩离婚了。

这个就有别于张三在某个时间点调用了李四的“啪啪”服务,这是一个动态关系,持续时间很短(东哥120秒算长的了,重庆政富哥才12秒)。当然,如果这个啪啪的过程被拍了视频,这个视频是静态的,只要你不删,一直都存在。

很多同学搞不清楚,在类图上画一堆动态关系(A调用B……),这是不合适的,应该在序列图里画,类图上应该画的是泛化、关联。还有的同学,把一堆系统不需要记录的关系画成关联。

1131.png

weixinpanjiayu2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值