gpt4 book ai didi

mysql - 学校时间表 : best database table design

转载 作者:行者123 更新时间:2023-11-28 23:56:14 25 4
gpt4 key购买 nike

我想为每个用户创建一个典型的学校时间表。

最终产品应如下所示:

+----+---------+---------+-----------+----------+--------+
| h | Monday | Tuesday | Wednesday | Thursday | Friday |
+----+---------+---------+-----------+----------+--------+
| 1 | SCIENCE | MATHS | ENGLISH | FRENCH | ART |
| 2 | SCIENCE | MATHS | ENGLISH | FRENCH | ART |
| 3 | | MUSIC | HISTORY | GEO | |
| 4 | | MUSIC | HISTORY | GEO | |
| 5 | HEALTH | PE | MATHS | | |
| 6 | HEALTH | PE | MATHS | | |
| 7 | | | | | |
| 8 | | | | SCIENCE | |
| 9 | | | | SCIENCE | |
| 10 | | | PE | | |
| 11 | | | PE | | |
+----+---------+---------+-----------+----------+--------+

现在我想为这个应用程序创建一个 MySQL 表。

我的想法是这样的(但这是最好的方法,因为这个表会有很多列):

+---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+-----+----
| user_id | mo1 | mo2 | mo3 | mo4 | mo5 | mo6 | mo7 | mo8 | mo9 | mo10 | mo11 | tu1 | tu2 | tu3 | tu4 | tu5 | tu6 | tu7 | tu8 | tu9 | tu10 | tu11 | we1 | we2 | ...
+---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+-----+----
| ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ...
| ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ...
+---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+-----+-----+----

结论:对于典型的学校时间表(带有 user_id),MySQL 表的最佳设计是什么?

更新 1

用户可以通过许多 HTML 文本字段为每节课输入文本/主题名称(也许还有更好的解决方案)。但我忘记说的一件重要事情是我没有类(class)表。

最佳答案

像这样的东西不应该只是一张 table 。您可能有一张类(class)表、一张学生表以及连接两者的关联表。学生表将具有学生 ID。该类(class)的表格将包含类(class) ID 以及提供类(class)的日期和时间。关联表将有一个用户 ID 和一个类(class) ID,将每个学生连接到他们参加的每门类(class)。然后有一些方法可以查询此类表以获得您在此处要求的输出。但是你提出的表格没有规范化,会给你带来各种其他麻烦。

关于mysql - 学校时间表 : best database table design,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31599485/

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