高校宿舍管理系统数据库设计说明书.docx
《高校宿舍管理系统数据库设计说明书.docx》由会员分享,可在线阅读,更多相关《高校宿舍管理系统数据库设计说明书.docx(15页珍藏版)》请在冰豆网上搜索。
高校宿舍管理系统数据库设计说明书
高校宿舍管理系统数据库设计说明书
编写:
郑宇
日期:
2015-4-25
审核:
日期:
批准:
日期:
受控状态:
是
发布版次:
1.0
日期:
2015-4-25
编号:
变更记录
日期
版本
变更说明
作者
2015-4-25
1.0
初始版本
郑宇
签字确认郑宇
职务
姓名
签字
日期
任务提出者
郑宇
郑宇
2015-4-28
3.2.1TableName(表名的解释)8
1
引言
1.1预期的读者
本说明书的预期读者为:
需求分析人员;设计人员;开发人员;项目管理人员;测试人员;用户等。
1.2数据库
数据库是数据管理的最新技术,是计算机科学的重要分支。
十年来,数据库管理系统已从专用的应用程序包发展成为通用系统软件。
由于数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。
我们选用的是SQLServer2005。
1.3目的和作用
将数据分析的结果进一步整理,形成最终的计算机模型,以便开发人员建立物理数据库。
2数据字典设计
数据字典的主要目的是提供查阅对不了解的条目的解释。
在数据字典中记录数据元素的下列信息:
一般信息(名字,别名,描述等),定义(数据类型,长度,结构等),使用特点(值的范围,使用频率,使用方式—输入/输出/本地,条件值等),控制信息(来源,用户,使用它的程序,改变权等),分组信息(父结构,从属结构,物理位置—记录、文件和数据库等)。
2.1数据字典
1.用户数据字典:
登记管理人员的用户名、密码及登录权限。
2.学生基本情况数据字典:
详细登记学生基本信息及学生住宿情况。
5.人员来访数据字典:
登记所有来访人员的详细情况。
6.物品出入数据字典:
详细登记学生物品出楼信息。
7.退宿数据字典:
登记所有宿舍楼退宿情况。
8.报修数据字典:
登记每个公寓每个宿舍公物损坏上报情况。
字段名
描述
数据类型
数据长度
NULL
Primarykey
name
用户名
varchar
20
N
Y
password
用户密码
varchar
20
Y
N
power
用户权限
tinyint
N
N
用户数据字典(user0)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Stu_Id
学号
char
9
N
YandF
Stu_Name
姓名
char
8
N
N
Stu_Sex
性别
char
2
Y
N
Stu_Class
班级
char
7
N
N
Stu_Polit
政治面貌
char
4
N
团员
Stu_Sta
状态
char
4
N
待分
dorm_no
楼号
tinyint
3
Y
N
Dor_Id
寝室号
char
10
Y
N
bed_no
床号
tinyint
Y
N
own_pc
有无电脑
char
2
N
无
nativity
入学日期
varchar
20
Y
N
birthday
出生日期
date
Y
N
department
所学专业
varchar
20
Y
N
学生基本情况表(Student0)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Vis_Name
来访人姓名
char
10
N
N
Vis_Host
被访人姓名
char
10
Y
N
Dor_Id
宿舍
char
10
N
F
Relation
所属关系
char
10
Y
N
Vis_Data
来访日期
date
10
Y
N
Vis_Time
来访时间
time
10
Y
N
Lea_Time
离开时间
time
10
Y
N
Vis_Watch
值班人
char
10
Y
N
Vis_Cred
证件名称
char
10
Y
N
Vis_Des
备注
char
50
Y
N
人员来访数据字典(Visit)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Stu_Id
学号
char
20
N
Y
G_In
进楼物品
char
10
Y
N
G_Out
出楼物品
char
10
Y
N
G_Date
时间
datetime
10
Y
N
Watch
值班人
char
10
Y
N
G_Des
备注
char
50
Y
N
物品出入楼数据字典(Goodsmove)
字段名
描述
数据类型
数据长度
NULL
Primarykey
stu_id
学号
char
20
N
Y
stu_name
姓名
char
10
Y
N
stu_sex
性别
char
10
Y
N
hou_id
楼号
char
10
Y
N
dor_id
房号
char
10
Y
N
rx_enr
入学日期
data
N
N
ts_enr
退宿日期
data
N
N
stu_study
所学专业
char
10
N
N
stu_class
班级
char
10
N
N
qu_sta
去向
char
50
N
N
stu_des
备注
char
50
N
N
退宿数据字典(ts)
字段名
描述
数据类型
数据长度
NULL
Primarykey
lossdate
报修时间
Timestamp
N
Y
losswupin
报修物品
char
50
Y
N
quantity
报损数量
float
10
Y
N
cause
损坏原因
varchar
100
Y
N
isreport
是否上报
char
1
Y
N
susheh
报修宿舍
integer
Y
N
renyuan
报修人员
char
10
Y
N
报损数据字典(loss)
3数据库设计
3.1系统物理结构设计
根据硬件设备和数据库平台系统,对数据库系统的物理存储结构进行规划,估计数据库的大小,增长速度,各主要部分的访问频度。
确定数据文件的命名,日志文件的命名。
数据文件和日志文件的物理存放位置,如果有多个存储设备,需要规划数据文件的组织方式。
系统内存使用配置,一般来说,数据库系统会自动维护系统内存,但有时为了某些性能问题,可以根据需要对数据库的内存管理进行另行配置。
3.2表设计
本管理系统共用到十二个表:
用户表(Users)、学生基本情况表(Student)、寝室表(Dormitory)、退宿表(Out)、班级信息表(Class)、宿舍级别表(Dormitorykind)、楼房表(Building)、员工表(Employee)、人员来访表(Visit)、物品出入楼表(Goodsmove)、学期注册表(Enroll)、学生财产表(Riches),各表之间均有一定的关系,可以进行关联。
●表名(中英文)
●字段名
●字段数据类型
●字段是否为空
●字段的默认值
●备注,对字段的解释性说明:
主键、外键、是否自动增一、是否为索引、是否唯一、是否进行数据检查等。
3.2.1TableName(表名的解释)
表3.1用户表(Users)
字段名
描述
数据类型
数据长度
NULL
Primarykey
UserID
用户编号
int
-
N
Y
UserName
用户名
varchar
32
Y
PassWord
用户密码
varchar
255
Y
Email
电子邮件
varchar
200
Y
IsAdmin
用户权限
bit
20
Y
表3.2学生基本情况表(Student)
字段名
描述
数据类型
数据长度
NULL
Primarykey
StudentId
学号
int
-
N
Y
StudentName
姓名
varchar
10
N
BuildingId
建筑编号
int
-
Y
DormitoryId
宿舍编号
char
-
Y
BedId
床位编号
int
-
Y
StudentSex
学生性别
char
2
N
StudentAge
学生年龄
int
-
Y
StayingTime
休息时间
int
-
Y
ClassName
宿舍号
char
10
Y
InTime
入住时间
char
10
Y
ClassId
班级编号
char
10
Y
表3.3寝室表(dormitory)
字段名
描述
数据类型
数据长度
NULL
Primarykey
DormitoryId
寝室编号
int
-
N
Y
BuildingId
宿舍编号
int
-
Y
KindId
房间级别
int
-
Y
TelephoneNum
电话号码
int
-
Y
InNum
入住人数
int
-
Y
表3.4楼房表(building)
字段名
描述
数据类型
数据长度
NULL
Primarykey
BuildingId
楼房编号
int
-
N
Y
AdminStrator
管理员
varchar
10
Y
FlooraMount
楼层数量
int
-
Y
AreaaMount
面积大小
int
-
Y
BuildingSex
宿舍性别
char
2
Y
DormitoryaMount
int
-
Y
表3.5退宿表(out)
字段名
描述
数据类型
数据长度
NULL
Primarykey
StudentId
学号
int
-
Y
Y
studentName
学生姓名
nchar
10
Y
OutTime
退宿日期
nchar
10
Y
ReaSon
退宿原因
varchar
50
Y
表3.6班级信息表(class)
字段名
描述
数据类型
数据长度
NULL
Primarykey
ClassId
班级号
char
20
N
Y
ClassName
班级名称
varchar
10
N
StudentaMount
学生人数
int
-
Y
ClassMoniter
char
10
Y
InStructor
char
10
Y
Major
char
10
Y
表3.7宿舍级别表(dormitorykind)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Kindid
宿舍级别
int
-
N
Y
StandardaMount
床位数量
char
10
Y
StandardFee
床位状态
int
-
Y
表3.8员工表(Employee)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Emp_Id
员工号
char
20
N
Y
Emp_Name
姓名
char
10
Y
N
Emp_Age
年龄
char
10
Y
N
Emp_Sex
性别
char
10
Y
N
Hou_Id
楼房号
char
10
N
F
Emp_Job
职位
char
10
Y
N
Emp_Add
家庭住址
char
50
Y
N
Emp_Tel
联系方式
char
10
Y
N
Emp_Des
备注
char
50
Y
N
表3.9人员来访表(Visit)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Vis_Name
来访人姓名
char
10
N
N
Vis_Host
被访人姓名
char
10
Y
N
Dor_Id
宿舍
char
10
N
F
Relation
所属关系
char
10
Y
N
Vis_Data
来访日期
datetime
10
Y
N
Vis_Time
来访时间
datetime
10
Y
N
Lea_Time
离开时间
datetime
10
Y
N
Vis_Watch
值班人
char
10
Y
N
Vis_Cred
证件名称
char
10
Y
N
Vis_Des
备注
char
50
Y
N
表3.10物品出入楼表(Goodsmove)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Stu_Id
学号
char
20
N
Y
G_In
进楼物品
char
10
Y
N
G_Out
出楼物品
char
10
Y
N
G_Date
时间
datetime
10
Y
N
Watch
值班人
char
10
Y
N
G_Des
备注
char
50
Y
N
表3.11学期注册表(Enroll)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Stu_Id
学号
char
20
N
Y
Dor_Id
寝室
char
10
N
F
Enr_Date
注册日期
datetime
10
Y
N
Enr_Price
所交费用
char
10
Y
N
Enr_Sta
交费情况
char
10
Y
N
Enr_Year
所交年度
datetime
10
Y
Y
Enr_Des
备注
char
50
Y
N
表3.12学生财产表(Riches)
字段名
描述
数据类型
数据长度
NULL
Primarykey
Stu_Id
学号
char
20
N
Y
Dor_Id
寝室
char
10
Y
F
Bed
床位
char
10
Y
N
Stool
凳子号
Char
10
Y
N
Desk
桌子号
char
10
Y
N
Telphone
电话
char
10
Y
N
KeySend
钥匙发否
char
10
Y
N
Box
箱子
char
10
Y
N
Bedding
被子
char
10
Y
N
Description
备注
char
50
Y
N
表设计中应注意的问题:
1.对于字符类型的字段,要仔细确认字段的可能长度。
在SQLServer数据库设计中,一般来说,对于定长的字符数据字段,去字符类型(char),对于不定长的,取变长字符类型(varchar)。
2.对于以分类形式出现的字段,建议不使用字符类型,而使用数字类型。
如:
人员分类为高职、中职、低职;如果用字符类型,则将这些字符串需要入库;如果使用数字类型分别用1、2、3代表高职、中职、低职,则入库的是数字信息,从程序编写的角度考虑,后者更好维护一些,主要体现在如果是多语言版本时,我们不需要在程序中将这些字符串信息进行判断处理。
3.3表之间的关联设计
为了保证数据的完整性,需要对表之间相互的数据进行约束,主要是通过外键来实现数据增删时的数据完备。
3.4存储过程设计
存储过程是一组预先定义并编译好的SQL语句,可以接受参数、返回状态值和参数值,并可以嵌套调用。
使用存储过程可以改变SQL语句的运行性能,提高其执行效率。
存储过程还可用做一种安全机制,使用户通过它访问未授权的表或视图。
3.5触发器设计
触发器是一种特殊的存储过程,当表中的数据被修改时,由系统自动执行。
使用触发器可以实施更为复杂的的数据完整性约束。
3.6Job设计
数据库系统提供了Job功能,该功能可以用来解决需要定期处理商业数据的问题。