数据库建立中间表的意义

中间表的使用,使得各个实体表之间相互独立,降低各个实体表之间的耦合性;
在企业开发中,不提倡在从表中建立外键来关联主表,因为那样的话,主表与从表的数据耦合性太高,不灵活;
所以使用中间表来存储实体表之间的关联后的组合数据
在这里插入图片描述

用户表与角色表之间的关系为一对多

我想查询id为2的用户所对应的多个角色;sql语句为:

SELECT r.*
FROM t_user_role ur LEFT JOIN t_user u ON u.id=ur.user_id
LEFT JOIN t_role r ON r.roleId=ur.role_id
WHERE ur.user_id = #{id};

用户和角色是一一对应的关系,为什么不直接在用户表中加一个角色的字段,而是另建一个中间关系表?

我的理解是一个用户可以有多个角色啊

是这样的:

一个人 可以拥有 多个角色
一个角色 也可以被多个人使用

多对多的关系 一般情况下是 需要建一个中间表去映射的。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐