MySql 多表关系

多表关系

一对一关系

一对一关系是最好理解的一种关系,在数据库建表的时候可以将人表的主键放置与身份证表里面,也可以将身份证表的主键放置于人表里面

img

一对多关系

班级是1端,学生是多端,结合面向对象的思想,1端是父亲,多端是儿子,所以多端具有1端的属性,也就是说多端里面应该放置1端的主键,那么学生表里面应该放置班级表里面的主键

img

多对多关系

对于多对多关系,需要转换成1对多关系,那么就需要一张中间表来转换,这张中间表里面需要存放学生表里面的主键和课程表里面的主键,此时学生与中间表示1对多关系,课程与中间表是1对多关系,学生与课程是多对多关系

img

'''
一对一:丈夫-妻子,用户-身份证,作者-作者详情
建表规则:
未存放外键的表被依赖,称之为左表;存放外键的表示依赖表,称之为右表;先操作左边再操作右表
# 一对一:外键在任何一方都可以,此时外键要设置 唯一键 


一对多:部门-员工,班级-学生,书-出版社
建表规则:
先建立主表,再建立从表,在从表中设置主表的唯一字段(通常为主键)作为外键,外键必须放在多的一方,此时外键值不唯一

多对多:老师-班级,课程-学生,出版社-作者
建表规则:
一定要创建第三张表(关系表),每一个外键值不唯一,看可以多个外键建立联合唯一,一定要创建第三张表(关系表),每一个外 键值不唯一,看可以多个外键建立联合唯一
'''

原文地址:https://www.cnblogs.com/TMesh/p/11731268.html