一个好的数据库设计对于学校的等级架构会是什么。
基本上,我有以下内容:
问题在于试图获得成绩的平均值。我不能说出头三个月所有科目的平均成绩。
有关分级系统的良好数据库设计的任何建议吗?
答案 0 :(得分:1)
在数据库中包含平均成绩的字段是错误的数据库设计。这些数据是多余的(因为您已经拥有了在其他地方计算此值所需的所有数据),因此不应存储。主要的数据库设计规则永远不会存储您可以计算的内容。这导致您在更新一个时需要更新两件事。在这种情况下,您需要在更新用于计算它们的等级时更新averages表。
但是,您可能想要制作一个计算平均值的视图。视图基本上是由选择查询填充的表。要创建视图,首先要创建一个选择查询,该查询返回您想要的平均值以及您想要用来查找此平均值的数据(很可能是IDSubject或IDStudent)。然后查找如何在数据库中创建视图,它应该能够从Select查询创建视图。
答案 1 :(得分:0)
在主题,成绩和分数之间添加课程表。
然后,您应该在每个三个月和每个年级汇总和平均分数时没有问题。