作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在设法创建我的第一个复杂的 J2E 解决方案,并且在每个教程中我都发现了某种中间表的用法,如下所示:
表:用户、用户角色、角色虽然逻辑会简单地向用户表添加一个键来引用它在角色表上的角色,但为什么要使用该中间表?
我认为这是一两个开发人员的选择,但我到处寻找教程,我发现了这种 sql 模式。
更好吗?它对某些特定的事情有帮助吗?速度,安全?因为从逻辑的角度来看,使用一个表 User 和 Roles 的外键更好。
谢谢
最佳答案
这是一种常见的数据库关系建模,称为M-N(多对多)。一个User可以有多个Roles,一个Role可以分配给多个User,所以需要中介表。这是另一个例子:一个老师可以教授很多类(class),每个类(class)可以由很多老师教授(例如,在不同的学期)。在这种情况下,您需要一个 Teacher-Class 中间表。
另一种关系是 1-N(一对 N)。一个用户可以拥有多个电话,但每个电话都属于一个用户。在这种情况下,用户的主键 (PK) 作为外键 (FK) 导出到 Telephones 表中。不需要中间表。
关于mysql - 中间 SQL 表 : What for?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32172989/
我是一名优秀的程序员,十分优秀!