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

         数据库的设计大致流程想必大家都知道,不知道的也能很容易的在网上找到相关的资料,通常,我们将数据库设计分为6个阶段,即需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、实施阶段、运行和维护阶段。

         本次我们不谈数据库设计的理论知识,主要是以机房收费系统的数据库设计为背景来说明数据库的概念结构设计是如何产生的,当然包括了数据库设计中最难的需求分析了,否则就谈不上什么数据库的概念结构设计了。

         因为我们都已经做过一遍了,而且从一开始我们就是照着系统原型做的,没有从无到有的过程,所以无法体会真正的需求分析是什么样的,也就不会去思考待开发系统的的各种功能是如何抽象出来的。下面我就以我个人的理解来开始机房收费系统的数据库的设计之旅。

         机房收费系统是给机房的值班人员和管理人员使用的,因此系统的用户将会是一个实体,为了满足客户需要,还要给用户进行权限设置。系统要管理的信息自然是学生本身的信息和学生因上机所产生的数据记录,因此学生也是一个必不可少的实体。

         很多人因为三范式的原则,将原来学生信息中的有关卡信息的部分抽出来,形成了另一个实体,即卡实体。这样做提高了数据库的灵活性,在某位学生的卡丢了之后,即可将丢失的卡的信息从数据库中删除,将学生信息中的卡号更新即可。但是在系统的实际使用过程中,这样的设计并无多大优势,反而降低了查询效率,因为涉及到了两张表。有人说用视图就可搞定,但是相对于一张表来说,那就相对麻烦了点。

         我们接着分析,系统用户操作会产生工作记录,学生在机房上机会产生上机记录,系统用户拥有对卡的注册、注销和充值的权限,因此会产生相应的数据信息,这样就差一个系统运行的基础数据设置了,这些数据信息需要一张表去存储,因此基本的数据库实体图就可以画出来了。

         

         上面的图是极其简单的一张图,可能还有很多错误,毕竟还没有具备熟练准确的对待开发系统的进行抽象分析的能力。当然上面的图并没有给出各个实体的属性,下面我用power designer软件画出系统的概念结构图,当然这个图也不是标准的CDM,主要目的是给大家展示出各个实体的属性。

          

         总之数据库的设计最难的是初期的需求分析阶段,也许需要开发方和客户方经过很长时间的反复讨论和交流,方才能够产生最终的结果,并且在后续的开发过程中也许还要不断的进行改进和完善。当然严格来讲,我这里说的也不能算是真正意义上的数据库设计,因为系统的蓝本和数据库蓝本的存在,会干扰我们的思考和分析,但这就是学习,要经历这个过程,亲手去做一个数据库,才会有深刻的体会,因为站在岸上永远也学不会游泳!


  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
机房收费管理系统 问题描述 结合我校计算机机房的运作模式,设计一种适合的收费管理系统,能够实现相关的人员检索,计时收费,管理汇总等功能模块。 开发环境 采用C或C++实现,VC++6.0 基本要求 主要功能模块: (1) 登录模块 (2) 上机管理模块 说明:上机登记时,余额不足3元或卡处于挂失状态,则拒绝登记。 每位同学的一次上机形成一条记录,每30秒遍历一次上机记录表,对表中所有正上机字段为TRUE的记录的上机用时增加30秒,同时减少上机卡表中的余额。 (3) 上机卡管理模块 (4) 充值挂失模块 (5) 查找统计模块:统计某天上机的总时数、每次上机的平均时数和机房的收入;某学生上机的次数、上机总时数、每次上机平均时间;挂失和查询余额。 参考的数据结构: 上机卡(卡号,姓名,专业班级,余额,状态),状态有:正常和挂失。 上机记录(卡号,上机日期,开始时间,上机用时,正上机,管理号代码) 上机记录表永久保存,用于事后查询和统计。 设计要求 1) 界面友好,输入信息符合逻辑:如上机时间设定在合理的时间范围。 2) 能从实践生活出发,设计合理的功能模块 3) 各类信息的数据结构明晰 4) 可根据自身生活体验添加相关功能模块。 拓展功能要求 鼓励采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。鼓励引入小型数据作为处理数据的来源,拓展知识面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值