找回密码
 立即注册

QQ登录

只需一步,快速开始

lucas.Yan

超级版主

8

主题

173

帖子

443

积分

超级版主

Rank: 8Rank: 8

积分
443
lucas.Yan
超级版主   /  发表于:2024-5-23 17:36  /   查看:324  /  回复:0
本帖最后由 lucas.Yan 于 2024-5-23 18:07 编辑

数据库表和关联关系建立
        初学者在刚使用模型建模的过程中往往会发现,对于从数据库中提取的许多表之间,应该建立什么样的关联关系,才能确保我们在仪表板设计的时候能正确筛选数据。如果关联关系设置不正确,会导致表模型之间不可达,或者无法进行正确的筛选,最终使得无法绑定或者数据不全。
        首先我们要了解到表和表之间存在的这些关系,在关系型数据库中,基于三大范式设计表结构,使得不同的表之间产生不同的关系。不同的表之间有四种关系一对一、一对多、多对一、多对多。说是表关系其实指的是表中关键字段之间的关系。
下面我们举一个例子来帮助大家去理解。
一对一关系:
image.png103749083.png
表关系
针对上面的表来说,每个人都只有一个唯一的身份证号码,一个身份证号码只能属于一个人,因此我们称Person表的p_id和IdCard表的c_id是一对一关系。
关联关系
针对这种表关系:我们在模型设计的时候应该使用1对1关系来进行关联。在建立关联关系前,需要将关联的两个字段都设置为唯一。
image.png706667785.png
一对多&多对一关系:
image.png300643309.png
表关系:
        一对多和多对一关系是相对概念,例如上面的课程表和教师表。一个教师可以教授多种课程,一个课程只能被一个老师教授。从教师角度来看,是一对多关系,从课程角度来看是多对一关系。
        在一对多和多对一关系中,一般把一的表叫做主表,多的表叫做从表。在数据库建立一对多关系的时候,通常使用外键约束,建立教师表t_id和课程表t_id的外键约束关系。
关联关系:
        针对这种表关系,我们在建立关联关系的时候使用1对N 、N对1、0..1对N、N对0..1这四种。其中1对N、N对1对应着非空的外键约束关系,0..1对N、N对0..1对应着数据库中可空的外键约束关系。
image.png312909545.png
多对多关系:
image.png16344603.png
image.png244961852.png
表关系:
多对多关系可以看做是两个多对一关系,例如下面课程与学生表
站在课程表的角度:一门课程可以被多个学生选择。站在学生表的角度:一个学生可以选择多门课程。
针对这样的情况,我们需要通过一张中间表来建立关联,
中间表的创建规则:1、表名由多对多关系的两个表名称组成。2、表中只有两个字段,分别建立外键关联到对应表的主键。3、两个字段都是主键,组成联合主键。
关联关系:
通过创建中间表,然后各自针对中间表的字段,将其余两张表各自建立1:N关系。

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部