设计一个学生管理系统的数据库(希望开发过的兄台提提意见)

shenfuhua 2002-11-29 08:42:59
我要设计数据库
主要是用sQLSERVER2000作为数据库服务器+visualbasic作为开发工具
我想问如何设计数据库呢?
我是这样想的在这个数据库中最不好受的是成绩表
如一个学校有Pro_a,Pro_b,Pro_c三个专业,各个专业系有很多的班级,很多的学生。
如何存放那么多的专业,班级,学生。各个学期的成绩?
我是这样的
(1)把所有的专业的班级的学生所有学期的成绩放如一个表中
该表的字段有
|学号|专业代号|班级代号|学期号|课程名|成绩|学分|....
但是他的缺点是表中的记录过于庞大,但是方便管理。
(2)把每个专业的没个班的学生按班级和学期的信息建立一个表
如专业99班级03学期号4那这个班的第四学期所有学生的成绩就放入表99034中
表内字段是
|学号|网络安全(课程名)|.....|学分|
00122|80(分数).....|............
但是表的数量过多,优点是信息直观
——————————————————————————————————————
希望各位朋友帮助我谢谢。在线等侯下午结贴


...全文
491 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
jwhaha 2010-06-15
  • 打赏
  • 举报
回复
楼住还在吗? 问题答案,,,我需要但我不会做啊~~
shenfuhua 2002-12-02
  • 打赏
  • 举报
回复
是 的你帮我啊
smilejiangjun 2002-12-02
  • 打赏
  • 举报
回复
还没搞定?
shenfuhua 2002-12-02
  • 打赏
  • 举报
回复
我的意思是在数据库中的表表的结构是
|学号|专业代号|班级代号|学期号|课程名|成绩|学分|....
但是怎么在表格中显示
 ———————————————————————
BB:|学号|语文|学分|JAVA|学分|.....|
| 202|60 |2 |60 |2 |......|
| 202|60 |2 |60 |2 |......|
为了显示BB:在表格中的头数据我另外做了一个表
字段:
专业代号|班级代号|课程名A|学分|.....|学期号|
这样是为了显示上表的数据的。
但是的如果A班的课程是5门而B专业B班的课程却是6门那我的这个表就惨了
希望高手帮助
shenfuhua 2002-12-02
  • 打赏
  • 举报
回复
你的意思是
liuri璇玑 2002-12-02
  • 打赏
  • 举报
回复
有点BUG,改一下:
update tels_type
set @str=@str+'max(case when 课程代码='+ltrim(str(课程代码))+
' then 分数 else ''0'' end) '+ltrim(课程名)+
',max(case when 课程代码='+ltrim(str(课程代码))+
' then 学分 else ''0'' end) '+ltrim(课程名)+','

liuri璇玑 2002-12-02
  • 打赏
  • 举报
回复
A班的课程是5门而B班的课程却是6门??
难道放在一起显示上吗,那可视度会好吗,如果是不同的时候显示倒没什么
例如;
a表:
课程代码 课程名
1 java
2 c++
3 basic
b表
202 | 1 |60| 2| 3|
202 | 2 |60| 2| 3|

想显示
学号|Java(分数)|学分|C++(分数).....|学期号|

declare @str varchar(1000)
set @str=''
update tels_type set @str=@str+'max(case when 课程代码='+ltrim(str(课程代码))+
' then 分数 else ''0'' end) '+ltrim(课程名)+','max(case when 课程代码='+ltrim(str(课程代码))+
' then 学分 else ''0'' end) '+ltrim(课程名)+'
set @str='select max(b.nameid) 学号,'+@str+
' 学期号 '+
'from 成绩表 group by 学期号,班级代码'
exec(@str)

没调试,自己试一下吧,差不多是这个思路

shenfuhua 2002-12-02
  • 打赏
  • 举报
回复
——————————————————————————————
如果这样的话我的表格显示
学号|课程名|成绩|学分|学期号
202 | Java |60| 2| 3|
202 | C++ |60| 2| 3|
....
还不如
学号|Java(分数)|学分|C++(分数).....|学期号|
202 |60 |2 | 60|...... | 5|
203 |60 |2 | 60|...... | 5|
主要是怎么显示呢还有
我发的贴子还加一个表就是没个学期不同班级的课程的名称的课程名称和成绩学分
字段:
专业代号|班级代号|课程名A|学分|.....|学期号|
这样是为了显示上表的数据的。
但是的如果A班的课程是5门而B班的课程却是6门那我的这个表就惨了
希望高手帮助

jujishou 2002-12-02
  • 打赏
  • 举报
回复
第一种方法好些吧!
学生(学号,专业代号,班级代号)
成绩(学号,学期号,课程名,成绩,学分)
liuri璇玑 2002-12-02
  • 打赏
  • 举报
回复
如果要显示班级名与课程名:
select 学号,班级名,课程名,成绩,学分
from 成绩表 a join 班级代码表 b on a.班级代码=b.班级代码
join 课程代码表 c on a.课程代码=c.课程代码
where 学期号=你要求的学期号
liuri璇玑 2002-12-02
  • 打赏
  • 举报
回复
按我那一个表结构举例:
那些每给学期的成绩:
select 学号,班级代码,课程代码,成绩,学分
from 成绩表
where 学期号=你要求的学期号
shenfuhua 2002-12-02
  • 打赏
  • 举报
回复
如何成立那些每给学期的成绩那??
shenfuhua 2002-12-02
  • 打赏
  • 举报
回复
好啊
liuri璇玑 2002-12-02
  • 打赏
  • 举报
回复
不好意思,现在不太方便,有什么问题在贴子上说啊,人多还好办事呢:)
shenfuhua 2002-12-02
  • 打赏
  • 举报
回复
哦,好的。真是麻烦你了啊?你可以开QQ/Icq吗?
liuri璇玑 2002-12-02
  • 打赏
  • 举报
回复
什么工具不重要,把它编成SQLSERVER2000的存储过程,在开发工具里直接执行存储过程就好了
shenfuhua 2002-12-02
  • 打赏
  • 举报
回复
你是用什么开发工具的啊?
liuri璇玑 2002-12-02
  • 打赏
  • 举报
回复
不需要另做啊,我那样的就是实现你所说的功能啊
ROBOT 2002-12-01
  • 打赏
  • 举报
回复
IF U ARE A student then
choose 1 and Create 2 table: student-class-profession-table and score-table
else
choose 1 and do as smilejiangjun(smile将军)
end if
ROBOT 2002-12-01
  • 打赏
  • 举报
回复
if u are a student the

加载更多回复(9)

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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