【发布时间】:2013-03-14 02:18:39
【问题描述】:
我正在为我的大学申请设计一个数据库。 报告实体如下:
每个report 都有一个students、courses 和学生rating 的列表。
问题在于,随着时间的推移,课程和学生人数可能会发生变化。数据库结构应该灵活且易于适应这些变化。对于这种情况,如何最好地在关系数据库中定义这些实体和设计表之间的关系?
我对这件事有一些想法。也许这个模型最能描述关系并解决问题的问题:
还是REPORT to STUDENT的关系是多余的?一份关系是否足够一份报告?例如只有REPORT to COURSE 没有
REPORT to STUDENT:
哪个选择更好,为什么?这种结构还有其他缺点吗?
提前感谢您的建议!
【问题讨论】:
-
学生可以属于多个报告吗?当然也一样?
-
学生不是否可能属于报告,即使学生的课程确实属于报告?
-
@Branko 感谢您的提问!首先,是的,学生和课程可以属于多个报告。因为报告可能不同。年报、月报、周报、课报……二、一个学生属于一个报告。报告具有报告和课程属性,它们必须都属于同一个报告。但是我们可以通过评分和课程(
report to rating,rating to course,course to report)向学生检索报告,不是吗?所以我们不会有数据冗余。你怎么看待这件事?不是很好吗?感谢您的提前! -
“学生和课程可以属于多个报告” - 那么两种模式都不正确。从表面上看,您需要一个 REPORT 和 COURSE 之间的连接表(可能也适用于学生)。我仍然不清楚“报告”的实际含义。这是由参加课程的学生(和/或讲师)的质量评估吗?还是学生在课程的各个部分获得的分数(或“进度评估”)?可以说报告是一组评级吗?
-
“报告是一组评级?” 是的,我可以说是真的。我应该坚持报告。它是我的应用程序中的关键实体。报告还有编号、标题、日期、批准人、描述等。我不需要讲师的实体。我从中抽象出来。你可以认为我的课程是自学的:)
标签: database database-design data-structures relational-database entity-relationship