【想法】实体多对多中间表的理解

2019-07-21  本文已影响0人  桌面很乱

多对多这里用一个例子,比如科目和学生的关系,一个科目可以对应多个学生,一个学生可以对应多个科目。

中间表就是‘科目-学生’,怎么理解呢?

中间表‘科目-学生’相当于一种绑定关系,科目和学生这两个实体需要通过这个‘绑定关系’去拿到对应的学生和科目。就像遍历map时候用到的entrySet,是一种绑定关系(把key和value绑定的一种关系)。而一个map可以包含多个entrySet。

※科目中包含多个‘科目-学生’的绑定状态,用来找到这个科目所对应的多个学生----一对多
※学生中包含多个‘科目-学生’的绑定状态,用来找到这个学生所对应的多个科目----一对多

这样就成功把多对多的关系通过中间表转换为两个一对多。

这个中间表有时候具有实际意义,比如发票(一个用户对应多张发票,一张发票对应多个商品,发票是用户和商品的中间表),那么他还可以添加其他属性,比如id(独立的id或者联合主键),时间,抽奖码等等,不局限于只用来表达多对多。

上一篇下一篇

猜你喜欢

热点阅读