机房收费系统数据库设计

之前,学习编写机房收费系统的文档时,曾写过
机房收费系统数据库概念设计模型——ER图 这篇文章,现在到了机房收费系统个人版重构阶段,需要再次进行数据库的设计。可以说,之前的数据库的概念设计给我现在的设计奠定了一定的基础,但是仍然发现自己的设计中有许多不合理并且需要改进的地方。

在这次的数据库设计当中,学习了一些数据库的命名规范,重温了经典的三范式(属性原子化,避免局部依赖,避免传递依赖)。但是发现,在需求面前,一些分属两张表的字段,为了方便,还是得放到一张表中,不得不破坏三范式。

现在将自己设计的数据库分享如下:(因为自己还没真正进行机房的重构,不知道在实际应用中,这些表是否合理,还请大家提宝贵意见。

数据库名ComputerRoomChargeSystem

学生信息表(T_StudentInfo)


名称


意义


类型


studentID


学号(主键)


Char(10)


studentName


姓名


Char(10)


sex


性别


Char(2)


department


系别


Char(20)


grade


年级


Char(10)


class


班级


Char(10)

这里,我将学生的信息和卡的信息分成两张表,首先,考虑到它们本身就属于不同的实体,其次,想到如果卡不用 了,就得把卡的信息删除,那么学生信息也得跟着删除(不过,后来想到,卡的信息可以不用删除,可通过标记其状态为“未使用”来区分)。最后,感觉把这么多字段放在一个表中,它看起来实在是太“臃肿”了。

用户信息表(T_UserInfo)


名称


意义


类型


UserID


用户名(主键)


Char(10)


realName


真实姓名


Char(10)


userLevel


用户级别


Char(8)


userPassword


用户密码


Char(10)


accountHolder


开户人


Char(10)

卡信息(T_CardInfo)


名称


意义


类型


cardID


卡号(主键)


Char(10)


studentID


学号(外键)


Char(10)


account


余额


Decimal(10,4)


usageState


使用状态


Char(6)


cardType


卡类型


Char(8)


registrationDate


注册日期


Date


registrationTime


注册时间


Time(0)


UserID


用户名


Char(10)


checkStatus


结账状态


Bit(1)

这里,使用状态用来标记该卡是使用,还是未使用(已退卡)。卡类型来标记是固定用户还是临时用户。

账单(T_AccountSheet)


名称


意义


类型


checkID


结账编号(主键)


Decimal(18,0)


lastCardMoney


上期充值卡金额


Decimal(18,4)


currentChargeMoney


本期充值金额


Decimal(18,4)


currentReturnMoney


本期退卡金额


Decimal(18,4)


currentConsumeMoney


本期消费金额


Decimal(18,4)


currentCardMoney


本期充值卡金额


Decimal(18,4)


checkDate


结账日期


Date


checkTime


结账时间


Time(0)


userID


用户名


Char(10)

账单,我为其设置了一个结账编号,作为主键,我想在真正建表时,可以按照结账编号从大到小排列,因为在打印账单或是日结账, 周结账都是结最近的账单吧。

本期充值卡金额=上期充值卡金额+本期充值金额-本期消费金额-本期退卡金额

充值记录表(T_ChargeRecord)


名称


意义


类型


cardID


卡号(外键)


Char(10)


chargeDate


充值日期


Date


chargeTime


充值时间


Time(0)


chargeMoney


充值金额


Decimal(10,4)


checkStatus


结账状态


Bit(1)


userID


用户名


Char(10)

退卡记录表(T_ReturnRecord)


名称


意义


类型


cardID


卡号(外键)


Char(10)


returnDate


退卡日期


Date


returnTime


退卡时间


Time(0)


account


退卡金额


Decimal(10,4)


checkStatus


结账状态


Bit(1)


userID


用户名


Char(10)

上下机记录表(T_OnOffLineRecord)


名称


意义


类型


cardID


卡号(外键)


Char(10)


onDate


上机日期


Date


onTime


上机时间


Time(0)


offDate


下机日期


Date


offTime


下机时间


Time(0)


offWay


下机方式


Char(8)


consumeMoney


消费金额


Decimal(10,4)


userID


用户名


Char(10)


checkStatus


结账状态


Char(6)


onFlag


正在上机标志


Bit(1)

在这个表中,我增加了结账状态这个字段,因为想到结账时,除了会结购卡数,充值金额,退卡金额,还要结消费金额。

基本数据表(T_BasicData)


名称


意义


类型


fixedPerCharge


固定每小时费用


Decimal(10,4)


temporaryPerCharge


临时每小时费用


Decimal(10,4)


increasingUnitTime


递增单位时间


SmallInt


leastTime


至少上机时间


SmallInt


prepareTime


准备时间


SmallInt


minMoney


最少金额


Decimal(10,4)

操作员工作记录(T_WorkLog)


名称


意义


类型


UserID


用户名(外键)


Char(10)


LoginDate


登录日期


Date


LoginTime


登录时间


Time(0)


ExitDate


注销日期


Date


ExitTime


注销时间


Time(0)


onFlag


正在上机标志


Bit(1)


computerID


机器名


Varchar(10)

小结:自己感觉数据库设计是件很有意思的事情,在画机房重构版的类图时,感觉还得先从数据库设计入手,所以数据库设计还是很重要的啊!

机房收费系统数据库设计,布布扣,bubuko.com

时间: 2024-12-25 16:51:17

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

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

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

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

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

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

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

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

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

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

前言 前一段时间要参加自考,要考<数据库原理>,在其中也更加了解了好多数据库的问题.比如,如何创建一个好的数据库,怎么创建数据库. 图一 数据库创建框架 现在开始机房的重构,以前用的是师哥师姐设计的数据库,现在发现自己也可以设计出来了,所以,按这步骤来自己设计一个机房收费系统的数据库. 一.规划 由于机房收费系统是第二遍做的,所以在总体规划阶段很容易看出系统在技术.经济.效益.法律是可行的:目标就是要更好的搭配应用程序合理运行. 二.需求分析 这一阶段是计算机人员(系统分析员)和用户双方共同收

客房收费系统数据库设计

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

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

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

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

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

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

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