SQL题目,求高手帮忙100分。 150
题目:在XK数据库中,当对学生表student或课程表course的记录进行增删时,为保证数据库的正确性和一致性,应该怎么设计,在设计的过程中要注意什么问题,请针对该问题...
题目:
在XK数据库中,当对学生表student或课程表course的记录进行增删时,为保证数据库的正确性和一致性,应该怎么设计,在设计的过程中要注意什么问题,请针对该问题给出相应的设计方案,同时给出相应的代码或操作步骤。 展开
在XK数据库中,当对学生表student或课程表course的记录进行增删时,为保证数据库的正确性和一致性,应该怎么设计,在设计的过程中要注意什么问题,请针对该问题给出相应的设计方案,同时给出相应的代码或操作步骤。 展开
14个回答
展开全部
这个设计很简单,需要三张表,即学生表(S),课程表(C),选课表(SC)。因为学生与课程是相对独立的两个对象,不会因为增删某个学生而影响课程,也不会因为增删某个课程而删除学生。
三张表的关系如下:
1.学生表保存学生信息,课程表保存课程信息,选课表保存学生与课程的对应关系。
2.增删学生表,不会改变课程表,反过来也一样。
3.删除某个学生时,同时删除选课表中相应的学生信息。
4.删除某个课程时,同时删除选课表中相应的课程信息。
三张表的设计如下
学生表(S)
SNO 学号
SNAME 姓名
.....(以下略,可根据需要增加字段)
课程表(C)
CNO 课程编号
CNAME 课程名
.....(以下略,可根据需要增加字段)
选课表(SC)
SNO 学号
CNO 课程编号
SCORE 分数
.....(以下略,可根据需要增加字段)
查学号为123的学生选择了什么课程及成绩:
SELECT S.SNAME AS 姓名,C.CNAME AS 课程名,SC.SCORE AS 分数 FROM S,C,SC WHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND S.SNO='123'
查课程号为abc的课程的学生及成绩(从高到低排序):
SELECT C.CNAME AS 课程名,S.SNAME AS 姓名,SC.SCORE AS 分数 FROM S,C,SC WHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND C.CNO='abc' ORDER BY SC.SCORE DESC
三张表的关系如下:
1.学生表保存学生信息,课程表保存课程信息,选课表保存学生与课程的对应关系。
2.增删学生表,不会改变课程表,反过来也一样。
3.删除某个学生时,同时删除选课表中相应的学生信息。
4.删除某个课程时,同时删除选课表中相应的课程信息。
三张表的设计如下
学生表(S)
SNO 学号
SNAME 姓名
.....(以下略,可根据需要增加字段)
课程表(C)
CNO 课程编号
CNAME 课程名
.....(以下略,可根据需要增加字段)
选课表(SC)
SNO 学号
CNO 课程编号
SCORE 分数
.....(以下略,可根据需要增加字段)
查学号为123的学生选择了什么课程及成绩:
SELECT S.SNAME AS 姓名,C.CNAME AS 课程名,SC.SCORE AS 分数 FROM S,C,SC WHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND S.SNO='123'
查课程号为abc的课程的学生及成绩(从高到低排序):
SELECT C.CNAME AS 课程名,S.SNAME AS 姓名,SC.SCORE AS 分数 FROM S,C,SC WHERE S.SNO=SC.SNO AND C.CNO=SC.CNO AND C.CNO='abc' ORDER BY SC.SCORE DESC
展开全部
主键和外键关系。
student字段有stu_id,st_name,cou_id......stu_id是主键,cou_id是外键
course字段有cou_id,cou_name..... cou_id是主键
要保持它们的一致性。意思是删除course时,要确保student不存在cou_id
即删除课程时,要在学生没有该门课才可以
student字段有stu_id,st_name,cou_id......stu_id是主键,cou_id是外键
course字段有cou_id,cou_name..... cou_id是主键
要保持它们的一致性。意思是删除course时,要确保student不存在cou_id
即删除课程时,要在学生没有该门课才可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
。。。。。。。。。
市场上有卖VB6光碟的。你专找毕业设计的一般里面就有你说的这些。16元我记得。
从DB设计,到设计业务分析,到代码全套。
市场上有卖VB6光碟的。你专找毕业设计的一般里面就有你说的这些。16元我记得。
从DB设计,到设计业务分析,到代码全套。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以在其中一个表的某字段设立主键,并将该字段做为另外一个表的外键
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈哈,这分和我真没缘分 ,我有个学生管理系统的数据库,需要的话我发给你参考参考
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不知道我的想法对不对你参考下:
学生表跟课程表应该是多对多关心,俩表之间必须有个关联字段
新增一个学生时只操作学生表,当然给学生添加课程时要用到课程表(新增课程也一样)
删除学生时必须同时删除该学生拥有的课程(根据学生的id)
删除课程时必须同时删除拥有该课程ID的学生
学生表跟课程表应该是多对多关心,俩表之间必须有个关联字段
新增一个学生时只操作学生表,当然给学生添加课程时要用到课程表(新增课程也一样)
删除学生时必须同时删除该学生拥有的课程(根据学生的id)
删除课程时必须同时删除拥有该课程ID的学生
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询