1、成绩表还是成绩库文件必须先明确,我想应该是成绩表。
2、两个设计都有问题。冗余都不小。
3、我人为地方案:
1)学生表:有一个字段表示所在的系,是否建立系表看情况决定。
2)课程表(略)
3)学生-课程表(或者叫成绩表):这是一个对应表,表示哪些学生学哪些课,成绩是多少,主要字段是学生ID、课程ID、成绩;可能还有的主要字段是学期。这个学生-课程表可以考虑按系分成多个表,如果数据量真的特别大,需要提高查询速度。
2、两个设计都有问题。冗余都不小。
3、我人为地方案:
1)学生表:有一个字段表示所在的系,是否建立系表看情况决定。
2)课程表(略)
3)学生-课程表(或者叫成绩表):这是一个对应表,表示哪些学生学哪些课,成绩是多少,主要字段是学生ID、课程ID、成绩;可能还有的主要字段是学期。这个学生-课程表可以考虑按系分成多个表,如果数据量真的特别大,需要提高查询速度。
成绩表要尽量精简,因为它的使用最频繁,多用外键和索引吧。
1,整个库如下:◇在校生表
◇毕业生表
◇在校生资料表
◇毕业生资料表
◆学生成绩表组
◆学生课程表组
◇其他表组
2,客户端和服务器端用pb开发,使用三层结构
3,对学生成绩采用年度结算的方法,大概意思就是每次结算在一个学年后,
生成新的课程表和成绩表,表名按年份来命名,比如sc2002,course2002
然后这个系统的主变量都加一,相当于自动选择新生成的表,这是主要的。
4每年都可以输入新的课程到课程表中,系统自动对应;
5现在就是学生的成绩表不好做,我找不出最好的方法,第二种方法肯定效率
高点,不过按系分那么每年一下要多10多个成绩表文件,我怕程序复杂度太高了
也就是说我要做个:select activename
select active database
模型,而且约束条件多多!有什么好办法没有,做过的朋友你是怎么做的!
MATBOY能不能讲下[三范式结构]的基本概念,指教!
成绩表:年份,学生,课程,成绩
学生表:学生,系别,...
课程表:系,课程
colum:stu_id,stu_name,department,major,grade
table2:(COURSE INFO)
column:Firstcourse,SecondCourse,ThirdCourse,......department,major,grade.
As a usual,there will be about 8 major subjects and 8 affiliate courses during one's single year study.At the same time,everybody in the same class will share the same course.
table3:(score)
column:stu_id,firstscore,SecondScore,ThirdScore,.....,semester.
Or,if one can choose the affiliate course as he like,the table3 colum would added:Aff1name,aff1score,aff2name.aff2score.....
Else,to avoid redundance,table2 maybe seperate into 2 tables,one record the subject which is bound with subject_id,then the other table will use the id to indicate courses.