情况是这样的:-
我有一个名为用户的表。这包含学生和导师的用户数据,因为所需的大部分数据是相同的。
完成系统后,我现在被告知客户希望能够将学生分配给导师。
是否有合法/干净的方式可以在单个表中创建一对多关系,也许是通过链接表?
我已尝试仔细考虑这个问题,但无论我想出什么解决方案似乎都很困惑。
如有任何意见,我将不胜感激。
谢谢
菲尔
最佳答案
您是否尝试过以下方法?
创建一个新表,例如 TutorStudent
(如果需要,选择一个更合适的名称)。它应该有两列:
导师编号
Student_ID
两列都是(复合)主键,每一列都是您的Users
表User_ID
的外键(我假设这就是您所拥有的)。
所以,如果您有一位名叫 Newton 的导师,他有两个学生,Tesla 和 Edison,您的用户
表格会有这样的东西:
- 用户 ID、姓名
- 1、牛顿
- 2,特斯拉
- 3、爱迪生
您的 TutorStudent
表将具有以下值:
- 导师 ID、学生 ID
- 1, 2
- 1, 3
相对简单,不需要对现有表格进行任何修改。
删除用户时一定要小心 - 使用数据库系统的删除级联功能或之后做一些维护工作,这样您的 TutorStudent
表就不会在更新/删除用户时过时。
关于sql - 同一张表的一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25501698/