我正在开发一个有评分系统的网络应用程序。为此,我有一个固定的10个不同类型的考试。
exam_1 exam_2 ..。exam_10
这是每个学生的。情况是,学生会随机考试,它可能是exam_10,exam_3和第二。
我想将分数存储到数据库中,而数据库的关键是student_id,所以我对设计的想法是:
,我想知道哪种方法比我这样的新手更有经验。
更新:我将运行的示例查询
发布于 2013-12-01 01:03:50
你真的需要专注于性能来评估这里的设计吗?MySQL的单个实例可能会在商品hw上每秒运行超过10k的select查询,并具有正确的索引,无论您选择哪种设计。我认为您应该考虑其他非功能属性,如可维护性、可扩展性和表现性。
所以,我会选择1号,student_id,exam_type,exam_score。这使得以后更容易添加另一种类型的考试。另外,如果您想要进行聚合(min、max、avg),选择查询就会容易得多。
发布于 2013-12-01 01:14:53
如果您没有大量的学生,那么使用选项1对这些简单的聚合性能来说就足够了。
由于有大量的学生,您可能需要考虑数据仓库选项,以便首先将数据集聚合到多维数据集中。
https://stackoverflow.com/questions/20307461
复制相似问题