【发布时间】:2017-03-05 19:47:37
【问题描述】:
这个问题可能有点宽泛!
最近我正在学习 MySQL。我正在制作一个学校考试信息数据库。我创建了一个名为 subjects 的表,其中存储了有关各种主题的信息,包括每个主题的全名或满分。我还创建了另一个名为 exams 的表,其中存储了每个学生在每个科目上获得的分数。显然subjects 是主表,exams 是这里的子表。根据存储在这两个表中的数据,当连接在一起时,会生成每个学生的百分比和成绩等信息。
但是如果subjects 表中的某些信息将来发生变化怎么办。假设某个特定科目的满分发生变化。在这种情况下,exams 表中的旧记录将无效或错误因为现在连接将生成对当前记录正确但对旧记录错误的新值。
在这种情况下我该怎么办?我是否将两个表非规范化为一个完整的表?但是我在数据库设计方面的胆怯知识表明这是错误的做法!
任何帮助或见解都将受到高度赞赏。
【问题讨论】:
-
临时表怎么样
-
您能详细说明一下吗?我在听。
-
据我所知,到目前为止,您有 3 张桌子,而不是 2 张。学生、科目、考试。保持东西标准化并有相交表。见Junction tables
-
太棒了。那会让我继续前进。非常感谢!
-
搜索“历史数据”。例如stackoverflow.com/questions/3874199/…
标签: mysql database-design