MongoDB 关系型数据库表(集合)与表(集合)之间的几种关系

简述关系数据库中表与表的 3 种关系

一对一的关系:例如:一个人对应一个唯一的身份证号,即为一对一的关系。

一对多关系 :例如:一个班级对应多名学生,一个学生只能属于一个班级,即为一对多关系

多对多关系 :例如:一个学生可以选多门课程,而同一门课程可以被多个学生选修,彼此的对应关系 即是多对多关系

 

 

一对一的关系

比如一篇文章信息对应着一个文章详情,就是一对一的关系,可以通过文章id查找到对应的文章详情,也可以通过文章详情找到对应的文章信息

其实这两个表可以放在一起,但是为了更方便查找,所以做了一个垂直的拆分

MongoDB 关系型数据库表(集合)与表(集合)之间的几种关系_第1张图片

再比如一个身份证对应着一个驾驶证,可以通过身份证查找到这个人的驾驶证,也可以通过驾驶证上的身份证号码查找到这个人的身份证

这两张表最好不要放在一起,因为驾驶证不一定会有,必须考了驾照才会有驾驶证

MongoDB 关系型数据库表(集合)与表(集合)之间的几种关系_第2张图片

 

 

一对多关系

比如一个商品分类对应着多个商品,某个商品也只属于一个分类,这样就是一个一对多的关系

MongoDB 关系型数据库表(集合)与表(集合)之间的几种关系_第3张图片

再比如一个订单号可以对应多个商品,某个商品只属于一个订单号

MongoDB 关系型数据库表(集合)与表(集合)之间的几种关系_第4张图片

MongoDB 关系型数据库表(集合)与表(集合)之间的几种关系_第5张图片

 

 

 

 

多对多关系

一个商品可以被多个用户关注,一个用户也可以关注多个商品,这样就形成了多对多的关系

MongoDB 关系型数据库表(集合)与表(集合)之间的几种关系_第6张图片

表的设计的时候,需要三个表:用户表,商品表,中间表(中间表保存着用户表中的id和商品表中的id)

比如下面查找用户id是1的用户收藏了哪些商品,第一步首先查中间表将用户id为1的(这里有两条数据),然后分别获取两条数据中的pid,最后去商品表中把这两个商品查找出来

MongoDB 关系型数据库表(集合)与表(集合)之间的几种关系_第7张图片

 

转载于:https://www.cnblogs.com/LO-ME/p/10872993.html

你可能感兴趣的:(数据库,数据结构与算法)