Database 如何优化此数据库设计?
我正在创建一个应用程序,该应用程序可以生成学生在校期间表现的统计信息。为了实现这一点,我需要存储学生所获得的每一个等级 但我不知道如何以最佳方式存储这些信息。这是一个初步的设计,但不知道它在实践中会起什么作用。 因此,每名学生在接受了16年的完整教育后,将拥有288份年级数据,每年18份。除此之外,还有他们的个人信息,包括他们的姓名、出生日期等Database 如何优化此数据库设计?,database,database-design,normalization,Database,Database Design,Normalization,我正在创建一个应用程序,该应用程序可以生成学生在校期间表现的统计信息。为了实现这一点,我需要存储学生所获得的每一个等级 但我不知道如何以最佳方式存储这些信息。这是一个初步的设计,但不知道它在实践中会起什么作用。 因此,每名学生在接受了16年的完整教育后,将拥有288份年级数据,每年18份。除此之外,还有他们的个人信息,包括他们的姓名、出生日期等 那么,我怎样才能最佳地保存这些数据呢?您的设计太具体了。每次评分方案更改或添加新课程时,您都需要更改模式 相反,您可以使用课程、成绩和路基表格进行抽象
那么,我怎样才能最佳地保存这些数据呢?您的设计太具体了。每次评分方案更改或添加新课程时,您都需要更改模式
相反,您可以使用
课程
、成绩
和路基
表格进行抽象设计。课程将有名称,年级和子年级将有类型。这将给你很大的灵活性。与其为每门课程设置一个单独的表,不如为所有课程设置一个表,其中一个课程id和一个学生id作为主键。我要做的第一件事是将其反规范化,取下大约10个表,用一个表和一个主题列替换它们。查询和扩展将是一场噩梦。在当前设计中添加另一个等级或另一门课程太难了
事实上,最好有4个表格,“学生”、“成绩”、“课程”和“笔记”
- 学生桌上摆着所有的学生 需要关于学生的信息
- 每个学生都属于某一特定的群体
特定时刻的“分数” - 每个等级包含几个
“课程”(例如英语、数学……)在 特定时刻 - 每门课程有0+个笔记(例如
阅读,听英语,…)
现在,这一切都是假设这是一个非常大的项目,您手头有大量的时间,并且您希望深入研究数据仓库概念,如星型架构等。回顾一下以前的文章,我想我应该让您知道我已经着手做了这件事。在研究和实施OLAP系统的短短几个月里,我学到了很多东西。该项目获得了几乎满分,并在当地一所学校积极使用。谢谢你的回答!