MySQL数据库设计Word文件下载.docx
- 文档编号:20825805
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:13
- 大小:451.73KB
MySQL数据库设计Word文件下载.docx
《MySQL数据库设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《MySQL数据库设计Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
本系统分为5个管理部分,即用户的管理/秘籍信息管理/体检信息管理/成绩信息管理和领证信息管理.
本驾校学员管理系统的开发语言为java语言,选择的数据库是mysql.本系统是B/S架构的系统,需要web服务器tomcat
二.系统功能
驾校学员管理系统主要的功能是5个管理部分,即用户的管理/秘籍信息管理/体检信息管理/成绩信息管理和领证信息管理.本系统的管理模块如图所示
图中模块的详细介绍如下:
用户信息管理:
主要是对管理员的登录进行管理.管理员登录成功后,系统会进入到系统的管理界面.而且管理员可以修改自己的密码.
学籍信息管理:
主要是对学生信息的插入/查询/修改和删除.查询学员的信息时,可以通过学号/姓名/报考的车型和学员的状态进行查询/通过这四个方面的处理,使学籍信息的管理更加的方便.
体检信息管理:
主要对学员的体检信息的插入/查询/修改和删除.
成绩信息管理:
对学员的学籍信息进行插入/查询/修改和删除等操作,以便有效的管理学员的成绩信息.
领证信息管理:
对学员的驾驶证的领取进行管理.这部分主要是对学员的领证信息的插入/查询/修改和删除等操作.这样可以保证学员的驾驶证领取后,领取驾驶证的信息能够有效的管理.
三.数据库设计.
数据库设计是开发管理系统的一个重要的步骤,下面是数据库的设计过程.
数据库设计是要确定创建一些表/表中的字段/字段的数据类型和字段的长度.
1.设计表
本系统所有的表都放在drivingschool数据库下,创建drivingschool数据库的SQL代码如下:
CREATEDATABASEdrivingschool;
运行的结果如图:
1.user表
user表中存储用户名和密码,所以将user表设计为只有两个字段.username字段表示用户名,password字段表示密码.因为用户名和密码都是字符串,所以这两个字段都是使用varchar类型.而且将这两个字段的长度都设置为20.而且用户名必须唯一.user表的每个字段的信息如表所示
字段名
字段描述
数据类型
主键
外键
非空
唯一
默认值
自增
Username
用户名
Varchar(20)
是
否
无
Password
密码
根据上表的内容创建user表.创建user表的语句如下:
CREATETABLEuser(
Usernamevarchar(20)primarykeyuniquenotnull,
Passwordvarchar(20)notnull
);
创建完成后,可以使用desc语句来查询user表的结构,如图所示:
1.studentinfo表
studentinfo表中主要的存放学员的学籍信息,包括学号/姓名/性别/年龄和身份证号等信息.用sno字段表示学号,因为学号是studentinfo表的主建,所以sno字段是下能为空值的,而且必须是唯一的.identify字段表示学员的身份证,而每个学员的身份证必须是唯一的.因为在些的身份证是以字母x结束的,所以identify字段设计为VARCHAR类型.
Sex字段表示为学员的性别,该字段只有”男”和”女”两种取值.因此sex字段使用enum类型.scondition字段表示学员的学业状态,每个学员只有3种状态,分别为”学习”/”结业”/”退学”.因此,scondition字段也使用enum类型.入学时间和毕业时间都是日期,因此选择date类型.s_text字段用于存储备注信息,所以选择text类型比较合适.studentinfo表的每个字段的信息如下表所示:
非空
自增
Sno
学号
Nit(8)
Sname
姓名
Sex
性别
Enum
Age
年龄
Int(3)
Identify
身份証号
Varchar(18)
tel
电话
Varchar(15)
Car_type
报考车型
Varchar(4)
Enroll_time
入学时间
date
Leave_time
毕业时间
scondition
学业状态
enum
S_text
备注
text
吞
创建studentinfo表的sql代码如下:
Createtablestudentinfo(
Snoint(8)primarykeyuniquenotnull,
Snamevarchar(20)notnull,
Sexenum(‘男’,’女’)notnull,
Ageint(3),
Identifyvarchar(18)uniquenotnull,
Telvarchar(15),
Car_typevarchar(4)notnull,
Enroll_timedatenotnull,
Leave_timedate,
Sconditionenum(‘学习’,’结业’,’退学’)notnull,
S_texttext
Studentinfo表创建在功以后,通过desc语句查看studentinfo表的结构,也可以通过showcreatetable语句查看studentinfo表的详细信息,查看如图:
3.healthinfo表
因为驾校体检主要体检身高/体重/视力/听力/辡色能力/腿长和血压信息.所以heathinfo表中必须包含这些信息.身高/体重/左眼和石眼视力分别用height字段/weight字段/left_sight字段和right_sight字段表示.因为这些数值有些小数,所以这些字段都定义成float类型.辡色能力/左耳听力/石耳听力/腿长和血压分别用differentiate字段/left_ear字段/right_ear字段/legs字段和pressuer字段表示.这些字段的取值都是在特定几个取值中取一个,因此定义成enum类型.
创建healthinfo表的SQL代码如下:
Createtablehealthinfo(
Idint(8)primarykeyuniquenotunllauto_increment,
Snoint(8)uniquenotnull,
Heightfloat,
Weightfloat,
Differentiateenum(‘正常’,’色弱’,’色盲’),
Left_sightfloat,
Right_sightfloat,
Left_earenum(‘正常’,’偏弱’),
Right_earenum(‘正常’,’偏弱’),
Legsenum(‘正常’,’不相等’),
Pressureenum(‘正常’,’偏高’,’偏低’),
Historyvarchar(50),
H_texttext,
Constrainthealth_fkforeignkey(sno)
Referencesstudentinfo(sno)
创建healthinfo表时将sno字段设置为外键,而且外键的别名为health_fk.而且,id字段加上了auto_increment属性,这样就可以将id字段设置为自增字段.
表建好了后用desc语句查询,如下:
4.courseinfo表
Courseinfo表用于存储考试科目的信息,每个科目都必须有科目号/科目名称.这个表只需要3个字段就可以了,cno字段表示科目号,cname字段表示科目名称,before_cour字段表示先行考试的科目号.每条记录中,只有before_cour字段中存储的科目考试通过后,学员才可以报考cno表示的科目.courseinfo表的每个字段的信息如下
Cno
科目号
Int(4)
Cname
科目名称
Before_cour
先行考试科目
创建courseinfo表的sql代码如下:
Createtablecourseinfo(
Cnoint(4)primarykeynotnullunique,
Cnamevarchar(20)notnullunique,
Before_courint(4)notnulldefault0
Courseinfo表创建完成后用desc语句查询,如下图:
5.gradeinfo表
Gradeinfo表用于存储学员的成绩信息.这个表必须和student和course表建立联糸.因此设计sno字段和cno字段.sno字段和cno字段作为外键.sno字段依赖于studentinfo表的sno字段,cno字段依赖于courseinfo表的cno字段.这里用time字段表示某一个科目的考试次数.默认的情况下是第一次参加考试,因此times字段的默认值为1.分数用grade字段表示,默认分数为0分.它的每个字段的信息如下图所示:
创建gradeinfo表的sql代码如下:
Createtablegradeinfo(
Idint(8)primarykeyuniquenotnullauto_increment,
Snoint(8)notnull,
Cnoint(4)notnull,
Last_timedate,
Timesint(4)default1,
Gradefloatdefault0,
Constraintgrade_sno_fkforeignkey(sno)
Referencesstudentinfo(sno),
Constraintgrade_cno_fkforeignkey(cno)
Referencescourseinfo(cno)
代码执行后,在sno字段被设置成外键,该外键的别名为grade_sno_fk.同时,cno字段也被设置成外键,改外键的别名为grade_cno_fk.用desc语句查询gradeinfo表的结构如下图:
6.licenseinfo表
Licenseinfo表用于存储学员领取驾驶证的信息.这个表中需要记录学员的学号/姓名/驾驶证号码/领取的时间/领取人等信息.
驾驶证号码用lno字段表示,每个人的驾驶証号都是唯一的.licenseinfo表的每个字段的信息如下图所示:
创建licenseinfo表的sql代码如下:
Createtablelicenseinfo(
Lnovarchar(18)uniquenotnull,
Receive_timedate,
Receive_namevarchar(20),
L_texttext,
Constraintlicense_fkforeignkey(sno)
Sno字段设置成外键,该外键的别名为license_fk.liceseinfo表创建完成后,使用desc语句查询licenseinfo表的如构如下图:
1.在studentinfo表上建立索引
下面使用createindex语句在sname初段上创建名为index_stu_name的索引.sql代码如下:
Createindexindex_stu_nameonstudentinfo(sname);
Createindexindex_caronstudentinfo(car_type);
使用altertable语句在scondition字段上创建名为index_con的索引.sql代码如下:
Altertablestudentinfoaddindexindex_con(scondition);
代码执行完了后,使用showcreatetable语句查看studentinfo表的结构.查看结果中如果显示了index_stu_naem和index_car和index_con这3个索引,这表示索引已经创建成功了:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 数据库 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)