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

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

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

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

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

 

 

一对一的关系

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

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

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

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

 

 

一对多关系

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

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

 

 

 

 

多对多关系

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

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

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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值