1

我有以下表格:

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)

该表是否违反了任何数据库规则或任何类似的规则?我的要求是有一个表格来映射学生在特定科目中获得的分数,这就是我想出的。这是正确的还是有其他方法可以做到这一点?如果您要投反对票,请告诉我原因。谢谢。

4

2 回答 2

2

Your idea doesn't "break any rule of database". I'd actually say it's pretty much the standard way of storing this data.

I would recommend to give the Marks_Details table a separate primary key, and maybe a date field. If a student wants to retake the subject, do you want the new data to override the old, or do you want to keep it both? It's up to you really.

于 2013-10-01T09:41:33.407 回答
2

该数据模型看起来不错。您只需使用每条记录中包含的一些附加信息(标记)建立多对多关系。

一个建议是将Subject_Details表重命名为Subject. 我认为这种措辞使关系更加清晰。

另一个建议是重命名并将列添加Subjects_Enrolled到此表中。这将消除需要,因为这两个表基本上包含相同的信息。为什么要存储和维护这些数据两次?这个想法是在学生注册课程时插入一条记录,然后在课程完成后更新该列。EnrollmentMarks_ObtainedMarks_DetailsEnrollmentMarks_Obtained

于 2013-10-01T09:40:57.347 回答