关于建库数据冗余的问题

lcylove2003 2003-08-13 04:41:26
有一个成绩管理问题,学校有5个年级,各年级各有班数目不一,各班又分别吏属于某个系,学校共有3个系。若要编一程序完成建库,增删、查询各班、个人成绩,统计数据,应建几个表好呢?分别设哪个为关键索引字?怎样做到最佳?
我又想到了各位,,,,。。
...全文
48 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dfwxj 2003-08-14
  • 打赏
  • 举报
回复
设计四个表:一个主数据表(成绩表),三个参照表(学生档案表、科目档案表和专业档案表),

专业档案表是学生档案表的参照表,学生档案表和科目档案表是成绩表的参照表,由于各学生、

各科目的成绩之间没有联系,所以数据表采用详细列表,各表间参照录入,不建立关联。

学生编号采用七位数字,格式为:xx-x-xx-xx,
规则为:入学年份(两位数字,同时限定了年级)-系别-班级-学生序号

表结构:

专业档案表(专业编号 C(3),系名称 C(20),专业名称 C(20))
说明:专业编号由三位数字组成,第一位区分系,同一个系的专业第一位必须相同,
后两位为专业序号

科目档案表(科目编号 N(2,0),科目名称 C(20))

学生档案表(学生编号 C(7),学生姓名 C(10),班级 C(42))
说明:建立学生档案只需选取专业编号,录入两位入学年份、两位序号和学生姓名即可,记录由以下命令生成:
sele 专业档案表
loca for 专业编号==专业编号
sele 学生档案表
appe blan
repl 学生编号 with 年份+专业档案表.专业编号+序号,学生姓名 with 学生姓名,;
班级 with 专业档案表.系名称+'_'+专业档案表.专业名称

成绩表(学生编号 C(7),学生姓名 C(10),班级 C(42),科目编号 N(2,0),
科目名称 C(20),分数 N(4,1))
成绩的录入方法无须详述了

现在只需要介绍一下查询的关键字怎么取:
学生编号:成绩表.学生编号
科目编号:成绩表.科目编号
班级编号:left(成绩表.学生编号,5 )
年级编号:left(成绩表.学生编号,2 )
lcylove2003 2003-08-14
  • 打赏
  • 举报
回复
真是太好了,ok
fj_jiangqi 2003-08-13
  • 打赏
  • 举报
回复
另做一个成绩表,科目分类表。
-------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
lcylove2003 2003-08-13
  • 打赏
  • 举报
回复
做一个表我觉得没有分类,不好,我也说不清怎么不好。
另外,还有一个问题就如果课程分为必修课和选修课,选修课可选可不选,最多3门,这又该如何设计数据库结构呢?
hnpyz 2003-08-13
  • 打赏
  • 举报
回复
如果我做,就一个表,这样方便一些。
老猿的书房 2003-08-13
  • 打赏
  • 举报
回复
基本学生表
学生编号C,姓名C
*******************************************************
学生成绩表(由于这里面的数据是常变的,所以单做一个表)
学生编号C,人个成绩C
通过学生编号与基本学生表关联
*********************************************************
系表
系编号C,系名称C

每个学生编号按一定的规则编码,按5位算,则是系号(1位)班级号(2位)顺号(2位)

例如,15101,就表示该学生是第一系,5年1班,第1位学生

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧