原则上不需要年度表
科目表好像有问题,你这样科目重复比较多,科目表需要代码和名称就够了
你可以在成绩表里面加上年度、班级、学号、科目、成绩
班级、科目都保存编码,到时候联查对应名称就行,查询就很简单了
要是你觉得不会半路变更科目名称和班级名称,成绩表里面保存名称也行,联查就省了,语句最简单。
越是复杂系统,表之间关联越少,不然很复杂的SQL语句就会更复杂庞大了,记住这一点,三范式在有的时候不是很适用
1理解您的数据
在设计表之前,应明确您打算如何处理数据,还要了解随着时间的推移数据会发生什么样的变化。您所做的假设将会影响最终的设计。
2您需要什么样的数据
设计应用程序时,关键要了解设计的最终结果,以便确保您准备好所有必需的数据并知道其来源。例如,报表的外观、每个数据的来源以及所需的所有数据是否都存在。对项目损失最大的莫过于在项目后期发现重要报表缺少数据。
3明确所需数据的类型和来源
知道需要什么样的数据后,就必须确定数据的来源。数据是否从其他数据源中导入?数据是否需要清理或验证?用户是否需要输入数据?明确所需数据的类型和来源是数据库设计的第一步。
4您打算如何处理这些数据?
用户是否需要编辑这些数据?如果需要,应如何显示数据以便于用户理解和编辑?有没有验证规则和相关的查找表?要求对编辑和删除保留备份的数据输入有没有相关联的审核问题?需要为用户显示哪些摘要信息?是否需要生成导出文件?了解这些信息后,就可以想象字段之间是如何相互关联的了。
5数据之间如何相互关联?
将数据分组放入相关字段(例如与客户相关的信息、与发票相关的信息等),每个字段组都代表要建立的表。然后考虑如何将这些表相互关联。例如,哪些表具有一对多关系(例如,一个客户可能持有多张发票)?哪些表具有一对一关系(这种情况下,通常会考虑将其组合到一个表中)?
6随着时间的推移数据会发生什么样的变化?
设计表之后,常常会由于没有考虑时间的影响而导致以后出现严重问题。许多表设计在当时使用时效果非常好,但是,常常会因为用户修改数据、添加数据以及随时间的推移而崩溃。开发人员经常会发现需要重新设计表的结构来适应这些变化。表的结构发生变化时,所有相关的内容(查询、窗体、报表、代码等)也必须随之更新。理解并预测数据会随时间推移发生哪些变化,可以实现更好的设计,减少问题的发生。
7学习如何使用查询
了解如何分析和管理数据同样很重要。您应该深刻理解查询的工作原理,理解如何使用查询在多个表之间链接数据,如何使用查询对数据进行分组和汇总,以及如何在不需要以规范化格式显示数据时使用交叉表查询。
好的数据设计的最终目标就是要平衡两个需要:既要随着时间的推移有效地存储数据,又要轻松地检索和分析数据。理解查询的功能对正确设计表很有帮助。
可以有几种设计方式
第一种:
好友有上限的话,假如是200吧,这个表就有201个字段,第一个字段是本身的Q号,其他字段是好友的Q号,但这样弄起来也挺麻烦的
第二种:
也是用一个表,主ID和好友ID设置成联合索引,一个主ID可以对应多个好友ID
第三种:
俩表关联,一个用户表,一个好友表,用户表中ID是好友表中的外键
第四种:
这个不知道是否可行,就是类似于第一种,但是就俩字段,一个主ID,一个好友ID,好友ID中,每个ID用符号分隔开
举个例子
QQ号 好友QQ号
1 2,3,4
这种可能将来查询的时候比较费劲
1、首先在oracle数据库创建教学管理系统需,要用到的数据表如下。
2、上述中数据表的其他信息创建。(departments表、class表、students表、course表)。
3、步骤一中数据表的其他信息创建。(teacher表、teach表、score表)。
4、然后对创建的数据表按要求输入数据值。
5、最后按照上述要求继续用插入语句添加数据值。
6、查询学生信息表中学生的学号、姓名、性别、出生日期、班级编码,并以汉字标题显示字段名。就完成了。
以上就是关于如何设计我的SQL数据库表的结构全部的内容,包括:如何设计我的SQL数据库表的结构、如何设计数据库中表的关系、这个数据库的表要怎么设计啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)