我在练习jsp servlet建网站!!刚开始学!
在用数据库建表时遇到了个很棘手的问题
例如:我想查询 学生选的课!!因为学生可以选多个课!弄不清怎么建表!查询出学生选的课的信息!!我只能实现 数据库里存储学生选一个课程的方法!
怎么才能实现学生选多个课程怎么建这些表,然后把这些表可以联系起来综合查询....谢谢表大体是这样
:我想设计的表是这样的额:表1:学生信息
student(id,name,。。)表2:选修课程
course(id,name...)表3 学生选修课程表stu_course(stu_id,name....)表4 教师信息表teacher(....)表可以不完全是这样但要实现下面的功能
:
1,因为这是选修课,每个学生可以选多个!!
2、每个老师指教一个选修课
在用数据库建表时遇到了个很棘手的问题
例如:我想查询 学生选的课!!因为学生可以选多个课!弄不清怎么建表!查询出学生选的课的信息!!我只能实现 数据库里存储学生选一个课程的方法!
怎么才能实现学生选多个课程怎么建这些表,然后把这些表可以联系起来综合查询....谢谢表大体是这样
:我想设计的表是这样的额:表1:学生信息
student(id,name,。。)表2:选修课程
course(id,name...)表3 学生选修课程表stu_course(stu_id,name....)表4 教师信息表teacher(....)表可以不完全是这样但要实现下面的功能
:
1,因为这是选修课,每个学生可以选多个!!
2、每个老师指教一个选修课
学生与课程是多对多,这肯定需要一张中间表,中间表中采用双主键的方式,一个是学生id,一个是课程id。假如学生1选择了课程123,那么中间表里就会存着三条数据,记录着1号学生对应课程1,1号学生对应课程2,....
这应该能满足要求了吧,楼主试试吧,数据库的关系基本就一对一、一对多、多对多三种,前两个都可以有个外键,第三个要用到中间表。
--------------------------
最后再给楼主贴个示例吧,包涵了这三种关系的示例:
drop database if exists testhibernate;
create database testhibernate;
use testhibernate;
create table card(
id int not null primary key,
stu_id int not null,
message varchar(20) not null
);
create table student(
id int not null primary key,
card_id int not null,
cls_id int not null,
name varchar(10) not null
);
create table classes(
id int not null primary key,
name varchar(10) not null
);
create table lesson(
id int not null primary key,
name varchar(10) not null
);
create table register(
lsn_id int not null,
stu_id int not null,
primary key(lsn_id,stu_id)
);
仔细研究下.....
另外谢谢大家的 回帖!!!数据库书以前看过当时没实践过!!所以没什么印象了
现在做jsp,用的是基本的数据语言!!视图 什么的都没怎么深入理解
我想也是找张 中间表书上 用的 是 班级(class)
但我的这个不适合用那个形式因为 这里选课不是以班级为单位自主作为个体选课
全校范围的
班级只能是个表式作用中间表用什么适合呢???????????????
另:设计数据库还是要多思考多练习的,积累了一定程度后自然而然就很顺手了。设计表的时候也要以面向对象的思维方式来,这里的学生、教师、课程分别就是三个独立的对象。
然后再连接表???我是自己学的java 到现在 学web希望大家赐教.....谢谢