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

前言

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

                                   图一 数据库创建框架

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

一、规划

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

二、需求分析

这一阶段是计算机人员(系统分析员)和用户双方共同收集数据库所需要的信息内容和用户对处理的需求。并以需求说明书的形式确定下来,作为以后系统开发的指南和系统验证的依据。

在机房收费系统中,分配了三种权限的用户。用户可以实现不同的工能。

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

三、概念设计

目标:反应用户单位信息需求的数据库概念结构。

概念模式是独立于计算机硬件结构,独立于支持数据库的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

时间: 2024-10-26 17:09:51

#【数据库】机房收费系统数据库设计的相关文章

重构机房收费系统——数据库设计

曾记得,第一次编写机房收费系统的文档模板,整整有12个文档需要编写,仅仅花了两三天的时间就让师傅验收,完结项目,就这样囫囵吞枣的文档编写完成了. 要知道:欠下的账,终究是要还的.现在到了机房收费系统个人版重构阶段, (1)进行数据抽象,设计局部概念模型: (2)将局部概念模型综合成全局概念模型 (3)就可以按要求绘制机房收费系统数据库概念设计模型--ER关系图. 可以说,之前的数据库的概念设计给我奠定了一丢丢的设计基础,外加<数据库系统原理>中的三范式定理,本着求知好学.虚心请教的理念,于是乎

机房收费系统——数据库设计说明书

GB8567--88 数据库设计说明书 1      引言 优质数据库在处理大数据的程序或系统中是有非常重要的作用的,所以对于数据库的设计有很多的要求和规定.首先数据库要有很好的可维护性.灵活性,并且数据库的算法逻辑性也要有一定的优化性,这样可以对资源进行有效利用,并且处理数据的时间也会缩短. 1.1   编写目的 由于上机的人越来越多,产生的上机数据越来越多,原始的保存方式已经不能满足数据存储的需要,所以使用数据库对各种记录进行存储.并且数据库可以节省很多的资源,如人力.时间.空间等. 数据库

机房收费系统数据库设计

之前,学习编写机房收费系统的文档时,曾写过 机房收费系统数据库概念设计模型--ER图 这篇文章,现在到了机房收费系统个人版重构阶段,需要再次进行数据库的设计.可以说,之前的数据库的概念设计给我现在的设计奠定了一定的基础,但是仍然发现自己的设计中有许多不合理并且需要改进的地方. 在这次的数据库设计当中,学习了一些数据库的命名规范,重温了经典的三范式(属性原子化,避免局部依赖,避免传递依赖).但是发现,在需求面前,一些分属两张表的字段,为了方便,还是得放到一张表中,不得不破坏三范式. 现在将自己设计

VB.NET版机房收费系统—数据库设计

之前第一遍机房收费的时候,用的数据库是别人的,认知也只能建立在别人的基础上,等自考中<数据库系统原理>这本书学完了之后,再去看以前的数据库,发现数据库真的还需要进一步的优化,下面是我设计数据库的一些见解,希望大家多提些意见. 数据库设计 E-R模型: 在观念模型设计阶段,一个系统都是建立在ER模型上的,设计好ER模型,很重要. 我设计的ER图: 系统中的实体:很简单,就是将系统中的名词都抽象出来,再具体了就是转换为数据库的逻辑设计时才要考虑的. 系统中的联系:在图中可以看得很清楚,这里我要重点

VB.Net版机房收费系统 ---数据库设计

数据库设计是根据用户需求设计数据库结构的过程,具体来说,数据库设计是对于给定的应用环境,在厝数据库理论的指导下,构造最优的数据库模式,在数据库管理系统上建立数据库及其应用系统,使之能有效地存储数据,满足用户的各种需求的过程.到底数据库该如何设计,古往今来,每个人都有每个人的想法,所以数据库设计并没有优劣之分,好坏之别,合适的数据库设计就是最好的. 走过自考--<数据库系统原理>,看过耿建玲老师的视频,对数据库设计有了一点了解,VB版的机房收费系统,直接用原来的脚本生成的数据库,当时对数据库设计

机房收费系统数据库概念结构设计

数据库的设计大致流程想必大家都知道,不知道的也能很容易的在网上找到相关的资料,通常,我们将数据库设计分为6个阶段,即需求分析阶段.概念结构设计阶段.逻辑结构设计阶段.物理结构设计阶段.实施阶段.运行和维护阶段. 本次我们不谈数据库设计的理论知识,主要是以机房收费系统的数据库设计为背景来说明数据库的概念结构设计是如何产生的,当然包括了数据库设计中最难的需求分析了,否则就谈不上什么数据库的概念结构设计了. 因为我们都已经做过一遍了,而且从一开始我们就是照着系统原型做的,没有从无到有的过程,所以无法体

vb.net机房收费系统报表设计

在vs2012中,基于vb.net环境开发了一个机房收费系统,在这个系统中用到了报表.什么是报表? 过去没有计算机的时候,我们算账,记录信息等都在纸上进行,就是列账单清单,通过账单,所需要的信息一目了 然. 在计算机的年代,取缔了手写+纸质账单,用软件来制作清单.这是我用Report.rdlc控件做的一个简单的报表. 设计 制作报表 (1)在UI层添加报表 (2)选择报表控件,并命名控件为weelyReport (3)右击,添加数据集 (4)新建数据源 (6)添加连接 (7)在经过几步操作就到了

客房收费系统数据库设计

之前.当学习编写计算机房收费系统文件.我写 机房收费系统数据库概念设计模型--ER图 这篇文章,如今到了机房收费系统个人版重构阶段,须要再次进行数据库的设计. 能够说.之前的数据库的概念设计给我如今的设计奠定了一定的基础,可是仍然发现自己的设计中有很多不合理而且须要改进的地方. 在这次的数据库设计其中,学习了一些数据库的命名规范,重温了经典的三范式(属性原子化.避免局部依赖.避免传递依赖). 可是发现,在需求面前,一些分属两张表的字段.为了方便,还是得放到一张表中,不得不破坏三范式. 如今将自己

机房收费系统合作——再看数据库设计

机房合作我负责了最简单的D层,接口层,工厂层.反正D层是我来写,于是数据库索性也就顺便设计了.已经是第三次敲机房收费系统了,每次都是相隔半年左右吧.需求搞得透透的了,数据库也就好设计了.基本跟第二次没什么大的区别,就是把Student表和Card表分开了. 重构的时候,我的数据库几乎什么都用到了:事务,存储过程,触发器,视图,联合查询等等.所以,这次设计数据库还是SO Easy的..并且,为了让婵婵和牛迁迁师哥写的方便,我把组合查询都写成了存储过程!!!!费了一番功夫,但是D层简单了不少.还记得