gpt4 book ai didi

mysql - 中间 SQL 表 : What for?

转载 作者:行者123 更新时间:2023-11-29 06:23:39 25 4
gpt4 key购买 nike

我正在设法创建我的第一个复杂的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com