日期:2014-05-17  浏览次数:20852 次

各位 小弟迷糊了 关于oracle 建表的问题,比如 我有, 学生表 老师表 班级表
如:表create table students --学生表
(
stuId number(10), --学生ID
stuName nvarchar2(20),--学生姓名
stuSex char(4),--性别
stuIDCard number (18),--身份证
stuTell number(13),--电话号码
stuDate date ,--入学日期
stuAddress nvarchar2(30),--地址
stuRmark nvarchar2(30)--备注
);
create table teachers --老师表
(
teacherId number(5),--老师ID
teacherNanme nvarchar2(20),--老师姓名
teacherTell number(13),--老师电话号码
teacherSex char(2) --性别
);
create table banji( --班级表
cId number(20),--班级ID
crenshu number(10),--班级人数
cmaster varchar(10), --班主任
cmajor varchar(10),--专业
cdate date, --入学日期
cRmark nvarchar2(30) --备注
);


各位请给我看看表吧,我的问题是(如何让这几张表有关系)

一个老师有多个学生 

一个老师有多个班级

我想把这几张表关联起来 (我的表很粗糙,希望各位给我美化一下。我是初学者)

------解决方案--------------------
crenshu number(10),--班级人数
这个字段还是去除吧,留着它你还得写代码去维护,用的时候计算出来就可以了。

另外学生、老师、班级的关系也是这样,不建议在库中直接保存学生和老师的关系,这个是可以通过学生-班级-老师来查询的,你如果维护了在学生转班、老师更换班级等操作时又要多维护一批数据,且维护出错的情况下可能会出现一些很怪异矛盾的统计结果。
------解决方案--------------------
教师表和学生表通过班级联系起来,学生属于班级,老师值班主任。外键。
------解决方案--------------------
主外键关系很容易建立,关键是把业务模型建好。

这里似乎班级是主类。