请教大佬们,关于判断一个学生和一个老师有无关系的问题

2020-12-28 14:47:51 +08:00
 akmisty

用途(需求)

因老师只能处理自己的学生,所以需要检查关系

已有如下表

关系介绍

输入

输入是 student_id 和 teacher_id

目前的方案:

  1. 先通过 student_id 去 class_student 查得学生所在的所有班级 ID class_ids,
  2. 再用 class_ids 和 teacher_id 去 class_teacher 验证

请问有没有更好的方案呢?

有考虑加个关系表 student_teacher 但想到每次加老师的,加学生到班级的时候,要插 n 条记录到关系表,不理想

4887 次点击
所在节点    MySQL
41 条回复
jones2000
2020-12-28 14:54:51 +08:00
老师表和学生表增加班级 ID 数组的 json 字段。这样 1 条记录就可以保存 1 个学生对应多个班级的信息了
gesse
2020-12-28 15:05:40 +08:00
“有考虑加个关系表 student_teacher 但想到每次加老师的,加学生到班级的时候,要插 n 条记录到关系表,不理想”

你考虑的这个方案是最优方案
且学生变动、老师变动,对数据库来说,不是频繁的数据变动事件。空间换时间,绝对划得来。
akmisty
2020-12-28 15:11:00 +08:00
@jones2000 这方法还可以,但是在批量改动时 班级的学生、老师时,每个老师学生都要查出其所有班级,然后更新相应的字段
cmdOptionKana
2020-12-28 15:12:11 +08:00
学生和老师一共就没几个人,完全不需要考虑性能问题,只考虑逻辑清晰易懂、不易出错就行。
OaO
2020-12-28 15:16:13 +08:00
对不起,我检讨,我不是带着学术讨论的目的点进这个标题的...( _ _)ノ
leafre
2020-12-28 15:17:48 +08:00
对不起,我想歪了
akmisty
2020-12-28 15:18:29 +08:00
@OaO 哈哈,看了你的回复后,我自己也不忍直视了
piecezzz
2020-12-28 15:18:35 +08:00
对不起,我理解的关系不是这种关系
yaocai321
2020-12-28 15:39:25 +08:00
学生和老师竟然有多对多的关系, 太可怕了. 道德沦丧.
cco
2020-12-28 15:40:37 +08:00
你这标题- -。我手误了。
LYEHIZRF
2020-12-28 15:40:45 +08:00
看到标题想到 NLP 关系抽取🤦‍♀️ 被论文支配的恐惧
Ranying
2020-12-28 15:45:39 +08:00
希望的点进来,失望的走出去。
PeterYang1996
2020-12-28 15:51:23 +08:00
失望
reed2020
2020-12-28 16:06:28 +08:00
失望
TimePPT
2020-12-28 16:12:01 +08:00
试试图关系数据库
wjfz
2020-12-28 16:14:04 +08:00
直接 INNER JOIN 现有两张关系表如何?
jch
2020-12-28 16:33:12 +08:00
失望
lyusantu
2020-12-28 16:49:11 +08:00
SELECT count(1)
FROM class_teacher
WHERE teacher_id in(
SELECT class_id FROM class_student WHERE student_id = #{studentId}
)
AND teacher_id = #{teacherId}

判断查询结果是否 > 0 即可知道是否有无关系?
kevinGraham
2020-12-28 16:53:50 +08:00
对不起,这不是我想要看到的关系
cking
2020-12-28 16:58:47 +08:00
对不起,我以为是师生恋

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/739645

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX