mysql - 学生、老师和学校的关系不明

标签 mysql database

共有三个实体:

School, teacher and student

有一些规则:

  • 一个学生只能属于一位老师
  • 一名学生只能属于一所学校
  • 一名教师可以属于一所或多所学校

这意味着我的表中有这些关系:

  • 学生表有一个到老师的链接和一个到学校的链接
  • 表老师有一个与学校的链接表(多对多关系)

现在这就是问题所在。假设有以下情况

School A    school B
 | |____       |
 |     |       |
 |    Teacher John
 |     |
 |     |
Student Ale

如您所见,约翰老师连接到两所学校,学生 Ale 连接到约翰老师和 A 学校。

现在老师 John 离开了学校 A,但学生 Ale 仍然与老师 John 保持联系,现在只属于学校 B。事实上,Ale 不会去学校 B,所以他应该被约翰老师就是这个例子。

我正在尝试以编程方式完成所有这些操作,但我怀疑架构中存在问题。你能发现它有什么问题吗?

最佳答案

我不是 Db 专家,但如果我是你,我会这样处理:

Teacher*--------1 teachesIn 1------------*School
                        *                   *
                        |                   |
                        |                   |
                        1                   |
                      Student 1--------------

所以你的学生没有链接到老师本身,而是链接到老师和学校之间的表, 因此,如果老师停止在学校教学,您就会自动删除老师和学生之间的关系

关于mysql - 学生、老师和学校的关系不明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19183764/

相关文章:

c# - LINQ/lambda : How can I query a DB table based on information from another table?(多对多关系)

mysql - 使用 Insert 方法进行多次更新 - 忽略唯一记录

sql - 添加分组行

使用 mySQL 原始数据库查询进行 Python 字符格式化给我带来了问题

mysql - 无法在 MySQL 中启用日志 - 错误 : Found option without preceding group in config file

database - 开源是否曾经创建过一个自动处理事务的单一文件数据库?

database - Postgres 序列正在生成负值作为主键

sql - 我怎样才能加入这两个表?

mysql - 将 1970 年之前的日期字符串转换为 MySQL 中的时间戳

php - 动态我的个人资料页面 php 不断给出错误