MySQL数据库设计说明.docx

上传人:b****3 文档编号:4000584 上传时间:2022-11-27 格式:DOCX 页数:16 大小:50.39KB
下载 相关 举报
MySQL数据库设计说明.docx_第1页
第1页 / 共16页
MySQL数据库设计说明.docx_第2页
第2页 / 共16页
MySQL数据库设计说明.docx_第3页
第3页 / 共16页
MySQL数据库设计说明.docx_第4页
第4页 / 共16页
MySQL数据库设计说明.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

MySQL数据库设计说明.docx

《MySQL数据库设计说明.docx》由会员分享,可在线阅读,更多相关《MySQL数据库设计说明.docx(16页珍藏版)》请在冰豆网上搜索。

MySQL数据库设计说明.docx

MySQL数据库设计说明

MySQL数据库设计

课程设计说明书

题目:

驾校学员管理糸统

院系:

信息与智能工程糸

专业班级:

嵌入式技术与应用

学号:

2011251011

学生:

指导教师:

2012年1月9日

 

驾校学员管理系统

-•系统概述

驾校学员管理系统主要用于管理驾校的各种数据,利用这种mysql数据库的驾校管理系统可以给学员的管理资料的整理,资料的查询,数据的处理带来了很大的方便,能够很大的提高管理员的工作效率.

本系统主要用于管理学员的学籍信息/体检信息/成绩信息和驾驶证的领取信息等•这些信息的录入/查询/修改等操作都是该系统的重点解决的问题.

本系统分为5个管理部分,即用户的管理/秘籍信息管理/体检信息管理/成绩信息管理和领证信息管理.

本驾校学员管理系统的开发语言为JaVa语言,选择的数据库是mysql.本系统是B/S架构的系统,需要Web服务器tomcat

二.系统功能

驾校学员管理系统主要的功能是5个管理部分,即用户的管理/秘籍信息管理/体检信息管理/成绩信息管理和领证信息管理•本系统的管理模块如图所示

驾校学员管理糸统

图中模块的详细介绍如下:

用户信息管理:

主要是对管理员的登录进行管理.管理员登录成功后,系统会进入到系统的管理界面•而且管理员可以修改自己的密码.

学籍信息管理:

主要是对学生信息的插入/查询/修改和删除.查询学员的信息时,可以通过学号//报考的车型和学员的状态进行查询/通过这四个方面的处理,使学籍信息的管理更加的方便.

体检信息管理:

主要对学员的体检信息的插入/查询/修改和删除.

成绩信息管理:

对学员的学籍信息进行插入/查询/修改和删除等操作,以便有效的管理学员的成绩信息.

领证信息管理:

对学员的驾驶证的领取进行管理.这部分主要是对学员的领证信息的插入/查询/修改和删除等操作.这样可以保证学员的驾驶证领取后,领取驾驶证的信息能够有效的管理•

三.数据库设计.

数据库设计是开发管理系统的一个重要的步骤,下面是数据库的设计过程•

数据库设讣是要确定创建一些表/表中的字段/字段的数据类型和字段的长度.

1.设计表

本系统所有的表都放在drivingschool数据库下,创建drivingschool数据库的SQL代码如下:

CREATEDATABASEdrivingschool;

DyQ(II.>ShOvJdatabases;

:

Da.ta.base

!

infoPnIaLtion_SChema!

bookdata

!

dι*iuInCfschool

!

mysql

!

test5rowsinS巳七<0.03sec〉

运行的结果如图:

1.user表

USer表中存储用户名和密码,所以将USer表设汁为只有两个字段.USernamez?

段表示用户名,PaSSWOrd字段表示密码•因为用户名和密码都是字符串,所以这两个字段都是使用VarChar类型•而且将这两个字段的长度都设置为20.而且用户名必须唯一・USer表的每个字段的信息如表所示

字段名

字段描述

数据类型

主键

外键

非空

默认值

自增

USername

用户名

VarChar(20)

PaSSWOrd

密码

VarChar(20)

根据上表的容创建USer表•创建USer表的语句如下:

CREATETABLEuser(

USernameVarChar(20)PrimarykeyUniqUenotnull,

PaSSWOrdVarChar(20)notnull

);

创建完成后,可以使用desc语句来查询USer表的结构,如图所示:

mysql>descUSeFJ

*H+■!

H÷h

IFieIdSTypeSNUll!

KeSF'DefaUIt∣EXtraS

+++-b十♦+

:

HSepnane:

UaFChar(20):

NO:

PRl:

MULL:

:

1PaSSWOFd!

UaFChaI√20)!

NO!

!

MULL!

!

♦H+■!

H÷K

2rowsinSet<0.02sec>

1・StUdentinfO表

StUdentinfO表中主要的存放学员的学籍信息,包括学号//性别/年龄和号等信息•用SnO字段表示学号,因为学号是StUdentinfO表的主建,所以Sno字段是下能为空值的,而且必须是唯一的・identify字段表示学员的,而每个学员的必须是唯一的•因为在些的是以字母X结束的,所以identify字段设计为VARCHAR类型・

SeX字段表示为学员的性别,该字段只有”男”和"女”两种取值•因此SeX字段使用enum类型.SCOnditiOn字段表示学员的学业状态,每个学员只有3种状态,分别为”学习”Γ结业”Γ退学”•因此,Scondition字段也使用enum类型•入学时间和毕业时间都是日期,因此选择date类型.s_text字段用于存储备注信息,所以选择text类型比较合适・StUdentinfo表的每个字段的信息如下表所示:

StUdentinfO表创建在功以后,通过desc语句查看StUdentinfO表的结构,也可以通过ShOWCreatetable语句查看StUdentinfO表的详细信息,查看如图:

ιI.

illrowsinSet

mysql>ShOWCreatetableStUdentinfo;

 

!

StUdentinfO;CREArETABLEIStU(Ientinfo,<

BSnO%int<8>NOINULL,'snane'UarChar<2U>NOINULL,'sex'enun<,男J女〉NoTNULL,Jge'int<3>DEFAULTNULL,'identify'UaVChal<18>NOTNULLF'tel'UaFChar<15>DEFAULTNULL,'car_type'UarChaι<4>NoTNULL,⅛npoll-time'dateNOTNULL,'leaue.time'dateDFFfiIJLTNULL.

textλ

'econdition'entm「学习结业退学〉NOTNULL,'s-,to×t

PRIMARyKEY<⅛lw'>,UHlQUEKEY'snu'<'srw'>,UNlQUEKEY'identify'「identify'儿KEYWindex_StU_nane%<'snaπe*>j.KEy'index_car*('caυ-ti∣pe'>j.KE?

'index_COn'('scondition'>

>ENGINE=InnODBDEFAlJLTCHARSET=IatinI!

++

Ψ:

mysql>descStudentinfo;

⅜∙

+-

4

++

:

FieId

II

TyPes

NUlII

«

:

KeiF

II

DefaUItI

IEXtra:

L.-Λ.

TBi----————————

~T-

——————r

T-

Br

SnO

II

int<8>:

NO

:

PRI

II

NULL

II

II

Snane

II

UarChav<20>!

NO

!

MUL

II

NULL

II

II

SeX

II

enuπ(,男—,女。

NO

I

1

II

NULL

II

II

age

■I

int<3>:

VES

!

II

NiJLL

I■

II

identify

■I

UarChav<18>!

NO

:

UNI

II

NiJLL

I■

II

tel

■I

UarChav<15>!

VES

!

II

NiJLL

I■

II

Car_type

II

UaVCbar<4>!

NO

1MUL

II

NULL

II

II

enroll_time

II

date!

NO

!

II

NULL

II

II

IeaUe_time

II

date!

YES

!

II

NULL

II

II

SCOnditiOn

II

enun<^学习,「结业艮学,〉;

NO

:

MUL

II

NULL

II

II

s_text

II

text!

VES

I

II

NlJLL

II

II

11vov/sInSet<0-03sec>

3・healthinfo表因为驾校体检主要体检身高/体重/视力/听力/拜色能力/腿长和血压信息•所以heathinfo表中必须包含这些信息•身高/体重/左眼和石眼视力分别用height字段/weight字段/left_sight字段和rightβsight字段表示•因为这些数值有些小数,所以这些字段都定义成float类型•拜色能力/左耳听力/石耳听力/腿长和血压分别用CHfferentiate字段/IefJear字段∕right-ear字段/legs字段和PreSSUer字段表示.这些字段的取值都是在特定儿个取值中取一个,因此定义成enum类型・创建healthinfo表的SQL代码如下:

Createtablehealthinfo(

Idint(8)PrimClrykeyUniCIUenotUnlIauto-increment,

SnOint(8)UniqUenotnull,

SnameVarChar(20)notnull,

Heightfloat,

Weightfloat,

Differentiateenum('正常','色弱','色盲'),

Left-Sightfloat,

RighteSightfloat,

Left_earenum('正常','偏弱'),

Right-earenum('正常','偏弱'),

LegSenum('正常'J不相等'

PreSSUreenum('正常'「偏高'「偏低'

HiStOryVarChar(50),

H_texttext,

COnStrainthealth.fkforeignkey(sno)

ReferenCeSStUdentinfO(SnO)

);

创建healthinfo表时将SnO字段设置为外键,而且外键的别名为health_fk.而且,id字段加上了auto-increment属性,这样就可以将id字段设置为自增字段.

表建好了后用desc语句查询,如下:

nysql>deschealthinfo;

-W

+

!

FieId

I

r

!

TyPe

!

NulI

P

:

Key

P

!

DefaUIt

丄-

!

EXtVa

-Λ.

!

id

!

int<8>

:

NO

:

PRl

!

NULL

!

auto_incre

nent!

'SnO

I

!

int<8>

!

NO

!

UNI

!

NULL

1I

I

'height

'fIOat

:

VES

II

:

NULL

■I

I

SWeight

I

!

F丄Oat

:

YES

BI

:

NULL

aa

I

;differentiate

I

!

enun<*lE常J

色弱色盲TiYES

aI

:

NULL

II

I

;Ieft_sigbt

I

!

float

!

YES

■I

:

NULL

■I

;Vlgħt-sight

I

;fIOat

!

YES

■I

5NULL

■I

I

iIeft_ear

I

;enum「正常J

,偏弱T;YES

■I

!

NULL

1I

I

;riyht-ear

I

»eιιuι∣ι<,正常

偏弱T;YES

II

!

NULL

1I

I

iIeyS

I

I匕num—正常,,

不相等,〉IVES

I

JNULL

I

I

'PrCSStICr

ICnUm<,正常*■

偏咼偏低,〉IVES

I

!

NULL

I

I

•bi3t0ry

1

IVarCbαr<50>

IVES

J

INULL

I

1

!

b_toxt

I

'text

!

VES

aB

!

NULL

IS

I

+

13rowsinSet

my

(Q.04eec>

—■————

酷狗2012,

4・COUrSeinfO表

COUrSeinfO表用于存储考试科U的信息,每个科U都必须有科U号/科U名称.这个表只需要3个字段就可以了,cn。

字段表示科IJ号,Cname字段表示科口名称,beforeβcour字段表示先行考试的科Ll号•每条记录中,只有before-cour字段中存储的科U考试通过后,学员才可以报考Cno表示的科U.COUrSeinfO表的每个字段的信息如下

名字

段述字描

型类据数

K

TrT

一唯

默值

增自

Cno

科目号

⑷nt

H称科名

C一

lr-≡

⑷ntI

π

π

π

π

创建COUrSeinfO表的SqI代码如下:

CreatetableCOUrSeinfo(

CnOint(4)Prinlarykeynotnullunique,

CnameVarChar(20)notnullunique,

BefOre_COUrint(4)notnulldefaultO

);

COUrSeinfO表创建完成后用desc语句查询,如下图:

msjsql>descCoUPSeinfO;

FieId

-+-

II

TyPe

-+-

II

+

MlIlI!

KesF

I

I

Default

!

Eκtι*a

■-T-T-I-T--T

CrK)

II

int<4〉

T-

I

I

Ho

P-一

I

I

PRl

Te-

I

I

HULL

丁―——————

I

I

Cnalne

II

VarChar<20>

II

No

II

UNl

II

NULL

II

heforeβcour

II

int(4)

II

MO

II

II

0

II

-+-

-+-

3rowsin:

SEt(0.05SeC)

5・gradeinfo表

GradeinfO表用于存储学员的成绩信息.这个表必须和StUdent和COUrSe表建立联糸.因此设计Sno字段和Cno字段.SnO字段和CnO字段作为外键.Sno字段依赖于StUdentinfO表的SnO字段,CnO字段依赖于COUrSeinfO表的CnO字段.这里用time字段表示某一个科U的考试次数•默认的情况下是第一次参加考试,因此times字段的默认值为1.分数用grade字段表示,默认分数为O分•它的每

个字段的信息如下图所示:

宇段名

字段描述

数据类型

主键

外键

非空

唯一

默认值

自噌

Id

编号

INT⑻

SnO

学号

INT(8)

CnO

科Ht>

INT(4)

IaStjime

占试时间

DATE

times

考试次数

INT(4)

1

grade

FLOAT

O

创建gradeinfo表的SqI代码如下:

Createtablegradeinfo(

Idint(8)PrimarykeyUniqUenotnullauto-increment,

SnOint(8)notnull,

CnOint(4)notnull,

Last-timedate,

TimeSint(4)default1,

GradefloatdefaultO,

COnStraintgrade-sno-fkforeignkey(SnO)

ReferenCeSStUdentinfO(SnO),

COnStraintgrade-cno-fkforeignkey(CnO)

);

代码执行后,在SnO字段被设置成外键,该外键的别名为grade_sno_fk.同时,CnO字段也被设置成外键,改外键的别名为grade_CnO_fk.用desc语句查询gradeinfo表的结构如下图:

mysql>descgradeinfo;

Field

I

I

_1_

TyPe

-+

!

NHll

■-T-I-I-I

II

≡≡≡≡≡≡≡∙≡Key

IDefAUIt

」■-I-I-T-T--Γ-IJ

-+

!

FXtFa

id

F—

I

I

int<8>

!

NO

-F—

I

I

PRI

〒—————————

!

NULL

!

aiitOeinCrenent

SnO

II

int<8>

!

NO

II

MUL

!

NULL

II

CnQ

II

int<4>

!

NO

II

MUL

!

NULL

II

IaSt_time

II

date

∖VES

II

!

NULL

II

times

II

int<4>

;VES

II

I1

II

grade

II

float

;VES

II

I0

II

--t-

-+

--t-

-+

-+

6rowsinSet<0.06SeC)

6.IiCenSeinfO表

LiCenSeinfO表用于存储学员领取驾驶证的信息•这个表中需要记录学员的学号//驾驶证/领取的时间/领取人等信息.

驾驶证用Ino字段表示,每个人的驾驶証号都是唯一的.IiCenSeinfO表的每个字段的信息如下图所示:

字段名

字段扌苗述

数据娄型

主键

外键

非空

唯一

默认值

自增

id

编号

!

NT(8)

SnO

INT(S)

^name

姓名

VARCHAR(20>

InO

镯缎址兮

VARCHAR(⑻

receivetime

领证时间

DATE

Al

rccciVCnamC

领证人

VARCHAR(20)

LteXt

篇注

TEXT

创建IiCenSeinfO表的SqI代码如下:

CreatetableIiCenSeinfo(

Idint(8)PrimarykeyUniqUenotnullauto_increment,

SnOint(8)UniqUenotnull,

SnameVarChar(20)notnull,

LnOVarChar(18)UniqUenotnull,

ReCeiVe_timedate,

ReCeiVe_nameVarChar(20)J

L_texttext,

COnStraintIiCenSe_fkforeignkey(SnO)

ReferenCeSStUdentinfO(SnO)

);

SnO'F段设置成外键,该外键的别名为IiCenSe_fk・Iiceseinfo表创建完成后,使用desc语句查询IiCenSeinfO表的如构如下图:

mysql>descIiCenSeinFO;

A亠亠▲<Λ.-Λ.

T

T

-Γ-

T

T

T—

T

!

FieId

I

I

TyPe

II

NUlI

I

I

Ke5F

II

DefaUIt

I

I

∙_

E×tι*a

I

I

•T-

fl

T-

T

Iid

I

I

int(8>

II

NO

aI

PRI

II

NULL

II

autoβin∣crement

II

!

Sno

I

I

int<8)

II

NO

I

I

UNI

II

NULL

II

I■

!

SnafTIe

II

uaι*chav<20>

II

NO

II

II

NULL

II

II

Iino

II

Uar-Chare18>

II

NO

II

UNI

II

NULL

II

II

!

rece:

ive_time

II

date

I

I

VES

I

I

I

I

NULL

II

I

I

!

receive_name

II

uaι*char<20>

II

VES

II

II

NULL

II

II

Ii_text

I

I

text

II

YES

aI

II

NULL

II

II

7rowsinSet<0.02SeC>

1.在StUdentinfO表上建立索引

下面使用Createindex语句在Sname初段上创建名为index-stUename的索引.sql代码如下:

Createindexindex_stu_nameOnStUdentinfO(Sname);

Createindexindex-carOnStUdentinfO(Car-type

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1