#【数据库】机房收费系统数据库设计

前言

前一段时间要参加自考,要考《数据库原理》,在其中也更加了解了好多数据库的问题。比如,如何创建一个好的数据库,怎么创建数据库。

#【数据库】机房收费系统数据库设计_第1张图片

                                   图一 数据库创建框架

现在开始机房的重构,以前用的是师哥师姐设计的数据库,现在发现自己也可以设计出来了,所以,按这步骤来自己设计一个机房收费系统的数据库。

一、规划

由于机房收费系统是第二遍做的,所以在总体规划阶段很容易看出系统在技术、经济、效益、法律是可行的;目标就是要更好的搭配应用程序合理运行。

二、需求分析

这一阶段是计算机人员(系统分析员)和用户双方共同收集数据库所需要的信息内容和用户对处理的需求。并以需求说明书的形式确定下来,作为以后系统开发的指南和系统验证的依据。
在机房收费系统中,分配了三种权限的用户。用户可以实现不同的工能。

#【数据库】机房收费系统数据库设计_第2张图片

                                 图二  机房收费系统功能框架

三、概念设计

目标:反应用户单位信息需求的数据库概念结构。
概念模式是独立于计算机硬件结构,独立于支持数据库的DBMS。

机房收费系统的E-R图

                                   图三  机房收费系统ER图

我们通过ER图就可以找到存在的实体,可以抽象成表。

四、逻辑设计

主要是把概念模型转换成DBMS能处理的逻辑模型。转换过程中要对模型进行评价和性能测试,以便获得较好的模式设计。

在机房收费系统中,我们可以把在概念设计中的ER图转换为我们的逻辑模型。

机房收费系统的关系模式:

1)用户信息(用户编号、用户姓名、级别、密码、创建者)

2)基本数据(用户编号、会员单价、普通单价、递增时间、至少上机时间、准备时间、最少金额、编辑日期、编辑时间)

3)学生信息(学号、用户编号、学生姓名、性别、系别、年级、班级、备注、注册日期、注册时间)

4)卡(卡号、用户编号、卡状态、卡类型、金额、是否结账、注册时间)

5)充值(卡号、用户编号、充值金额、充值日期)

6)上机情况(卡号、上机日期、上机时间、下机日期、下机时间、消费时间、消费金额、上机状态)

7)退卡(卡号、用户编号、退还金额、退还日期)

8)日结账单(用户编号、上期余额、当日充值金额、当日消费、单日退还、本期金额、日期)

9)周结账单(用户编号、上期余额、当日充值金额、当日消费、单日退还、本期金额、日期)

10)工作记录(用户编号、上机时间、下机时间、所在机号、用户状态)

五、物理设计

这个阶段主要是在数据库的存储记录格式、存储记录安排和存取方法。这个阶段完全依赖给定的硬件环境和数据库产品。

按照需求把没有个表设计出来:

(1)用户信息(User_Info)

描述 字段名 数据类型 大小 是否空
用户编号 UserNo varChar 10
用户姓名 UserName varChar 10
级别 Level varChar 10
密码 Password varChar 10
创建者 ConstuctorNo varChar 10

(2)基本数据(BasicData_Info)

描述 字段名 数据类型 大小 是否空
用户编号 UserNo varChar 10
会员单价 VIPRate int
普通单价 CommonRate int
递增时间 IncreaseTime int
最少上机时间 LeastTime int
准备时间 ReadyTime int
最少金额 LeastCash int
编辑日期时间 SetDateTime DataTime

(3)学生信息(Student_Info)

描述 字段名 数据类型 大小 是否空
用户编号 UserNo varChar 10
学号 StudentNo varChar 10
学生姓名 StudentName varChar 10
性别 Sex varChar 10
系别 Department varChar 10
年级 Grade varChar 10
班级 Class varChar 10
备注 Explain varChar 50
注册时间 RegisterDateTime DataTime
学生状态 StudentState varChar 10
卡号 CardNo varChar 10

(4)充值(Recharge_Info)

描述 字段名 数据类型 大小 是否空
卡号 CardNo varChar 10
用户编号 UserNo varChar 10
充值时间 RechargeDateTime DataTime
充值金额 Recharge int

(5)上机情况(Online_Info)

描述 字段名 数据类型 大小 是否空
卡号 CardNo varChar 10
上机时间 OnComDateTime datatime
下机时间 OffComDateTime datatime
消费时间 UseTime int
消费金额 UsedCost int
上机状态 ComState varchar 10
电脑名称 ComName int

(6)退卡(BackCard_Info)

描述 字段名 数据类型 大小 是否空
卡号 CardNo varChar 10
用户编号 UserNo varChar 10
退卡时间 BackDateTime DataTime
退卡金额 BackCash int

(7)卡(card_Info)

描述 字段名 数据类型 大小 是否空
卡号 CardNo varChar 10
用户编号 UserNo varchar 10
余额 Cash int
卡类型 CardType varchar 10
结账 IsCheck varchar 10
注册时间 RegisterDateTime datetime
卡状态 CardState varchar 10

(8)工作记录(WorkLog_Info)

描述 字段名 数据类型 大小 是否空
用户编号 UserNo varChar 10
上机时间 EnterComDateTime datetime
下机时间 OffComDateTime datetime
电脑名称 ComName varchar 50
用户状态 UserState varchar 10

(9)日结账单(DayCheck_Info)

描述 字段名 数据类型 大小 是否空
用户编号 UserNo varChar 10
上期余额 RemainCash int
当日充值金额 RechargeCash int
当日消费 ConsumeCash int
当日退还 BackCash int
今日金额 AllCash int
日期 CheckDate date

(10)周结账单(WeekCheck_Info)

描述 字段名 数据类型 大小 是否空
用户编号 UserNo varChar 10
上周余额 RemainCash int
本周充值金额 RechargeCash int
本周消费 ConsumeCash int
本周退还 BackCash int
本周金额 AllCash int
日期 CheckDate date

六、数据库实现

把表建立起来后基本就完成了,这个时候就要对数据库和应用程序进行交流,引用这个数据库,数据库试运行。

七、数据库运行与维护

在编写程序的过程中,发现有的地方数据库的数据类型会有影响,可以进行更新更改。对数据库进行维护。

<号外>心灵鸡汤

通过对数据库的设计,我又从新走了一遍软件的创建过程,基本和软工的思想是一样的,其中还是需要我们不断的理解不断的创新,比如,ER图的画法,如何找实体,如何找出其中的关系,这都是我们这个阶段都要掌握的,这就是我们的基础!

【作者:王雷 http://blog.csdn.net/kisscatforever】

你可能感兴趣的:(数据库,框架,重构,设计)