数据库设计有关问题。崩溃ING.

数据库设计有关问题。崩溃ING.

数据库设计问题。崩溃ING…

学生作业管理系统

主要功能:

1.教师可以通过   所教班级(多个班)或所教科目   .布置作业内容

2.学生通过所学科目.查看尚未完成作业   提交作业

3.教师通过所教班级.或点击已经提交的作业查看   批改作业

4.学生通过科目.查看提交的作业的分数.

主要表:   1.学生   2.教师   3.班级   4.科目   5.作业

设计表的难点:

1.课程是可以增减的

2.所教班级不止一个班??

3.教师所教科目不止一个,并且教的科目每年可能会变.

4.班级的课程每年也会变

提问:

本来我的关系是这样建的

教师表:TID   TNAME…

课程表:SID   SNAME…

班级表:CID   CNAME…

临时表:TID   SID   CID

后来朋友建议我将   课程ID   字段内容设计成:2007-J-02-11    

意思代表   2007年的课程   名字叫JAVA   属于02教学组   属于11班级组

 

请问这样设计字段后该如何建立关系表啊.



你的表的结构可以,你朋友的不好




1、教师表 与 课程表 建立一个对应表 A(一个教师可以教多门课程 1:N)

2、学生表 与 A 建立一个对应表 B (学生选课的同时,也于老师建立了对应关系)

3、学生表 与 班级表 建立一个对应表 C (解决因年度变化,班级与学生多对多的情况)

4、在作业表里将科目编码作为外键(一个科目可能有多种作业)

以上想法,供参考。




create table class #班级

(

ID smallint(5) unsigned not null auto_increment primary key,

name varchar(20) not null default ‘ ‘,

students tinyint(3) unsigned not null default 0 #学生数量

)

engine=MyISAM default charset=utf8;

create table subject #科目

(

ID tinyint(3) unsigned not null auto_increment primary key,

name varchar(20) not null default ‘ ‘

)

engine=MyISAM default charset=utf8;

create table teacher #教师

(

ID smallint(5) unsigned not null auto_increment primary key,

name varchar(20) not null default ‘ ‘

)

engine=MyISAM default charset=utf8;

create table relation #教师与所教班级、科目的对应关系

(

ID smallint(5) unsigned not null auto_increment primary key,

class smallint(5) not null default 0,

SID text #科目ID列表,例“1,2,3”

)

engine=MyISAM default charset=utf8;

create table student #学生

(

ID mediumint(8) unsigned not null auto_increment primary key,

name varchar(20) not null default ‘ ‘,

CID smallint(5) not null, #班级ID

SID text, #科目ID列表,例“1,2,3”

index index_CID (CID)

)

engine=MyISAM default charset=utf8;

create table homework #作业

(

ID mediumint(8) unsigned not null auto_increment primary key,

TID smallint(5) unsigned not null, #教师ID

CID smallint(5) unsigned not null, #班级ID

SID tinyint(3) unsigned not null, #科目ID

text text, #内容

index index_CID_SID (CID, SID)

)

engine=MyISAM default charset=utf8;

create table homework_submited #提交的作业

(

ID mediumint(8) unsigned not null auto_increment primary key,

HID mediumint(8) unsigned not null, #作业ID

SID mediumint(8) unsigned not null, #学生ID

score tinyint(3) unsigned not null, #得分

index index_HID (HID)

)

engine=MyISAM default charset=utf8;

数据库设计有关问题。崩溃ING.

相关文章:

你感兴趣的文章:

标签云: