实例

  • 一对一关系实例:每一个中国本土的居民与居民唯一的身份证编号。一个本土居民只有一个身份证编号。‘唯一性’

  • 一对多关系实例:1.一个母亲可以有很多孩子,一个孩子只有一位亲生母亲。

    ​ 2.一个员工有一个部门,1个员工关联一个部门,一个部门可以拥有多个员工,但一个员工只能关联一个部门。

  • 多对多关系实例:1.一位老师可以教导多个学生,一个学生可以被多个老师教导。

    ​ 2.一个学生可以选择多门课程,一门课程可以被多个学生选中。

关系

一对一关系:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SNc6T92m-1651063998486)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20220427193128549.png)]

​ 一对一关系是最简单的关系,在数据库建表时,可以将‘本土居民’表中的主键ID放置到’身份证‘表中;

​ 或者将‘身份证’表中的主键ID放置到‘本土居民’类表中。

​ 在‘一对一’关系中,‘本土居民’表 和 ‘身份证’表 可以随意指向。

一对多关系:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oNuQKIGF-1651063998487)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20220427194127421.png)]

1.母亲是A端,孩子是多端,结合面向对象来说,A端是母亲,对端就是孩子;

所以多端拥有A端的属性,即多端中应该放置A端的主键ID,‘孩子’表格中应该放置‘母亲’表中的主键ID。

一对多(又名多对一),理应将多的那个表当做主表,少的那个表的为次表。

多对多关系:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bJZ2yETs-1651063998487)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20220427192615354.png)]

对于多对多的关系,我们需要将它转换成1对多的关系,那我们就需要一张中间表来进行转换,

这张中间表内存放学生表里面的主键和课程表里面的主键,这是学生与中间表之间是1对多的关系,

课程与中间表也是1对多的关系。

学生与课程之间是多对多的关系。

2.一个班级有若干个老师,一个老师也可以带若干个班级。同理!

小结:

  1. 在这3种关系中,1对多的关系是最重要的,根据面向对象的思想在建表的时候将某1端的主键放置于多端即可。
  2. 只有明确这3种关系,才能更好的根据项目需求来设置数据库的数据。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐