注册 登录
编程论坛 ASP.NET技术论坛

求助:数据库表问题—又有问题了

yunj1105 发布于 2007-03-28 11:10, 844 次点击
这是一个选课系统中出现的问题下面是数据库表:
user_ID Course1 Course2 Course3 Course4 Course5 Course6 Course7
0001 计算机 化学 物理 生物
问题:
怎样判断数据库表中的空白项在哪?
怎样把又选了的课依次添入数据库表中?
如果删除了Course2,Course3和Course4怎样依次移到Course2、Course3?

[此贴子已经被作者于2007-3-28 12:36:17编辑过]

18 回复
#2
冰镇柠檬汁儿2007-03-28 11:11
你的表不应该这样设计
#3
yunj11052007-03-28 11:13
那怎么设计啊?
#4
yunj11052007-03-28 11:15
之后还要把个人的课程表打印出来,所以我就这么设计了,但在写语句时发现很难实现
#5
冰镇柠檬汁儿2007-03-28 11:21
user_ID 计算机 化学 物理 生物 地理 历史
123 1 0 0 1 0 1
124 1 1 0 0 1 1
125 0 0 1 1 1 1

.....

[此贴子已经被作者于2007-3-28 11:23:14编辑过]

#6
yunj11052007-03-28 11:31
但是选课是面向全院,这样是不是数据库表里的项就太大了啊?而且课程设置是由管理员操作的,在管理员添加课程的模块程序就很不好实现了
#7
冰镇柠檬汁儿2007-03-28 11:37
那就这样
userid 课程
123 计算机
123 化学
123 物理
123 生物
124 计算机
124 物理
124 历史
125 地理
。。。。。。
#8
windstores2007-03-28 11:40
你把你要实现的功能需求描述清楚哦,这个貌似不难,描述清楚了才好设计表亚
#9
yunj11052007-03-28 11:41
恩,这样挺好,我去试试看,谢谢斑竹!
#10
yunj11052007-03-28 11:54
8楼:就是要做一个实验室选课系统,课程有管理员添加,共有四个模块
学生模块的功能是
A、学生登录、修改密码和个人资料;
B、学生查看选课说明,开学初选择实验项目和时间;
C、查看已确定的下周实验时间并及时改选实验项目,打印选课信息,显示该班名单;
D、登录查看本次实验的实验成绩,并给实验教师进行评价、打分和留言;
实验教学主任功能模块:
A、基本信息管理(实验名称设定等)
B、班级管理及班级信息设定;
C、实验项目信息及开课时间设定;
D、实验选择的开始时间和结束时间;
E、每周实验选课的调整和确定选课截止时间;
F、统计选课较少的学生名单并打印通知;
G、所有自然班成绩的生成和打印、导出以及选课情况统计;
I、通知、公告管理
J、留言信息反馈和管理;
实验项目设定:实验项目设定时考虑一个关联实验项目问题,有的实验是两个实验合并的,例如:学生选择了本周三下午做实验1,则必须选择在下周三下午做实验2。这样实验1和实验2就是关联的。这些要在实验1和实验2的说明中给出,同时也要在给每个学生的选课说明中详细强调说明。
一个实验的开设次数很多,例如电子示波器的使用,从第三周开始,一直开到14周,每周的下午和晚上都要开设,总共要开设60次。
学生选课:学生选课可以一次性将本学期要选的实验全部选完并确定每个实验的时间,但还需要每周登录网站查看下一周的实验时间有没有被管理员取消或者改到另一个时间段,以便能及时补选,下周的实验选择在本周三截止。控制学生一周只能选择一个实验。
#11
Kendy1234562007-03-28 11:59
按照7楼设计。
关于选课用到的表不止这张

表一 选课用
UserID CourseID

表二 管理员加课程用
CourseID Description
#12
冰镇柠檬汁儿2007-03-28 12:05
以下是引用Kendy123456在2007-3-28 11:59:11的发言:
按照7楼设计。
关于选课用到的表不止这张

表一 选课用
UserID CourseID

表二 管理员加课程用
CourseID Description

还有用户表你没说

#13
Kendy1234562007-03-28 12:06
都说了是关于选课用到的表嘛。。。用户表那是基础表 没有的话根本走不到选课这一步来呀
#14
yunj11052007-03-28 12:09
呵呵 有很多表呢!做的我都头大了。那你们说统计必修学分和选修学分怎么实现啊?我想用静态函数,但是我刚想了想这样好象就把所有学生的学分给统计了
#15
Kendy1234562007-03-28 12:16
给课程设置一个属性 必修 选修

表二 管理员加课程用
CourseID Description Status
001 化学 1 (必修)
002 生物 0 (选修)

统计的时候用group by
#16
yunj11052007-03-28 12:25
恩 这些都设置了 那就用的着统计学分时再group by吧
#17
yunj11052007-03-28 12:29
我又有问题了那统计出来的总学分怎么往出提取啊?
#18
冰镇柠檬汁儿2007-03-28 13:30
用SQL语句,查出来,一般用sum函数
#19
yunj11052007-03-28 14:37
我还没用过这个sum函数呢,我去找个资料看看
1