某校的OA系统里的一个成绩管理模块里的一件小事情...数据:
学生信息表: 学籍号(PK) 姓名 性别 入学时间 .....
2008010001 张三 男 2008-09-01
2008010002 李四 男 2008-09-01 ..... 课程信息表: 课程名称 课程代码(PK) ....
现代小说欣赏 09001
简明数字电路 01001
...... 成绩表: 学籍号 课程代码 成绩 考试ID
2008010001 09001 99 1
2008010001 01001 80 1
2008010002 09001 70 ...
2008010002 01001 100 ...
...... 考试信息表:
ID(PK) 考试名称 考试时间
1 唐僧考试 2007-06-07
.......
这些表的关系并不复杂:学生信息表跟课程信息表是多对多的,学生表跟成绩表是1对多,课程信息表跟成绩表也是1对多的,这没什么好说的,问题出在系统提供的历史成绩查询这里...
情景:
由于原来学校的教务管理员换了新人,新人上来使用这套系统,大刀阔斧,把目前根本不开设的课程砍掉了...问题:
这会发生什么问题呢?大家一眼就能看出来,课程给砍掉了的话,当你查询历史成绩就会出问题,给砍掉的课程在历史成绩中消失了...解决方案:
狗歌了一翻,大家也都是意见不一,有人把课程信息给加上考试信息表里的ID字段,每次考试都保存这次考试的课程配置
还有人干脆把课程信息表作为一个变量 放进考试信息表里的一个字段里,这样每次考试就跟课程信息挂钩了...可是,我总感觉这样解决问题不太正确,历史数据跟现在的数据随着时间的变迁很可能不一样,甚至有时候基表的字段都会发生变化,不知道大家有什么好的解决办法,难道需要传说中的元数据????这东西目前成功应用的例子也没找到几个啊希望大家给点意见,小弟道行太浅,望大侠点拨一二,在此谢过:)
学生信息表: 学籍号(PK) 姓名 性别 入学时间 .....
2008010001 张三 男 2008-09-01
2008010002 李四 男 2008-09-01 ..... 课程信息表: 课程名称 课程代码(PK) ....
现代小说欣赏 09001
简明数字电路 01001
...... 成绩表: 学籍号 课程代码 成绩 考试ID
2008010001 09001 99 1
2008010001 01001 80 1
2008010002 09001 70 ...
2008010002 01001 100 ...
...... 考试信息表:
ID(PK) 考试名称 考试时间
1 唐僧考试 2007-06-07
.......
这些表的关系并不复杂:学生信息表跟课程信息表是多对多的,学生表跟成绩表是1对多,课程信息表跟成绩表也是1对多的,这没什么好说的,问题出在系统提供的历史成绩查询这里...
情景:
由于原来学校的教务管理员换了新人,新人上来使用这套系统,大刀阔斧,把目前根本不开设的课程砍掉了...问题:
这会发生什么问题呢?大家一眼就能看出来,课程给砍掉了的话,当你查询历史成绩就会出问题,给砍掉的课程在历史成绩中消失了...解决方案:
狗歌了一翻,大家也都是意见不一,有人把课程信息给加上考试信息表里的ID字段,每次考试都保存这次考试的课程配置
还有人干脆把课程信息表作为一个变量 放进考试信息表里的一个字段里,这样每次考试就跟课程信息挂钩了...可是,我总感觉这样解决问题不太正确,历史数据跟现在的数据随着时间的变迁很可能不一样,甚至有时候基表的字段都会发生变化,不知道大家有什么好的解决办法,难道需要传说中的元数据????这东西目前成功应用的例子也没找到几个啊希望大家给点意见,小弟道行太浅,望大侠点拨一二,在此谢过:)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货