我有以下表格:
Student(Student_ID(PK), FName, LName,...)
Subject_details(Subject_code(PK), Subject_Name)
Subjects_Enrolled(Student_ID,Subject_Code)
我的问题是: 我可以有下面的表格吗
Marks_Details(Student_ID,Subject_Code,Marks_Obtained)
该表是否违反了数据库的任何规则或类似的规则?我的要求是有一个表格来映射学生在特定科目中获得的分数,这就是我想出的。这是正确的还是有其他方法可以做到这一点? 如果您要投反对票,请告诉我原因。 谢谢。
最佳答案
该数据模型看起来不错。您只需使用每条记录中包含的一些附加信息(标记)设置多对多关系。
一个建议是重命名 Subject_Details
表到 Subject
.我认为这种措辞使关系更加清晰。
另一个建议是重命名 Subjects_Enrolled
至 Enrollment
只需添加 Marks_Obtained
此表的列。这将消除对 Marks_Details
的需要因为这两个表基本上包含相同的信息。为什么要对这些数据进行两次存储和维护?这个想法是将记录插入 Enrollment
当学生注册类(class)然后更新 Marks_Obtained
列在类(class)完成后的稍后日期。
关于sql - 试图用获得的分数映射学生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19112818/