zoukankan      html  css  js  c++  java
  • 数据库设计---合适的就是最好的

            数据库设计是依据用户需求设计数据库结构的过程,详细来说。数据库设计是对于给定的应用环境,在厝数据库理论的指导下,构造最优的数据库模式,在数据库管理系统上建立数据库及其应用系统,使之能有效地存储数据。满足用户的各种需求的过程。究竟数据库该怎样设计,古往今来,每一个人都有每一个人的想法,所以数据库设计并没有优劣之分,好坏之别,合适的数据库设计就是最好的。

            走过自考--《数据库系统原理》,看过耿建玲老师的视频。对数据库设计有了一点了解,VB版的机房收费系统,直接用原来的脚本生成的数据库,当时对数据库设计这部分的内容也没有特别深入的研究过,欠下的债,早晚要还,我想如今是时候了,这几天。VB.Net版的机房收费系统正式开工了,才发现数据库设计是一门学问。接下来,结合机房收费系统,总结一下数据库设计。

            首先,数据库设计主要包括下面六个步骤:

            1、需求分析:了解用户的数据需求、处理需求、安全性及完整性要求;
            2、概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型;
            3、逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图;
            4、物理结构设计:设计数据的存储结构和存取方法,如索引的设计。
            5、系统实施:组织数据入库、编制应用程序、试执行;
            6、执行维护:系统投入执行,长期的维护工作。

           本文就需求分析,概念设计和逻辑结构设计展开讨论,在这里简单的说一下机房收费系统的需求。使用该系统有三个角色用户:分别为一般用户,操作员,管理员。不同的权限有着不同的权限,详细例如以下:

             A、一般用户能够实现的功能是:
             a、查看学生卡内剩余金额,通过卡号查询查看学生基本信息并显示剩余金额。
             b、查看上机记录,通过卡号查询上机记录,姓名,上下机日期和时间,消费金额。导出Execl表格。
             c、查看充值记录,通过卡号查询充值金额,充值日期,充值时间,充值教师,导出Excel表格。
             d、查询学生上机状态,并能够强制管理学生进行下机操作。
             e、改动password。
            

            B、操作员指办理一定业务的人员,级别高于一般用户,除了能够实现值班员的功能外,还能够运行额外功能:

            a、注冊卡号,注冊一张新卡。


            b、充值,通过卡号充值金额,显示充值卡号。上次卡内剩余金额。如今卡内剩余金额,充值日期时间以及老师。
            c、退卡,将卡注销,并退还学生卡内剩余金额。


            d、收取(退还)金额查询,通过输入起始日期和终止日期,查询充值金额。充值日期时间,充值教师,导出Execl表格。
            e、学生基本信息维护和操作员工记录,採用组合查询。
             f、学生上机统计信息查询,採用组合查询,导出Execl表格。

           C、管理员能够管理系统全部信息,级别最高,除了能够处理值班员和操作员的功能外,还能够处理其它操作:
           a、结账。
           b、加入删除用户。加入或删除不同级别的账户。


           c、基本数据设定,包括上机费用等信息。


           d、查看正在值班的教师。
           e、日结和周结,涉及报表。

           依据上面的需求分析,设计ER模型(不是特别完整,有不同见解的小伙伴欢迎留言交流)例如以下图:

            

            接着创建数据库和表,若要创建数据库和表,须要去顶数据库的名称,全部者。大小。以及存储该数据库的文件和文件组。在SQL Server中创建数据库主要有两种方式。一是在SQL Server Management Studio中使用向导创建数据库。二是通过查询窗体运行T-SQL语句创建数据库。以T-SQL创建数据库和表为例,实现代码例如以下:

             

    create database mycharge  --创建mycharge数据库
    go
    user mycharge --转到mycharge数据库
    go
    create table studen --在STUDENT数据库中创建表student
    (
      Sno char(10) primary key,
      Sname char (10) ,
      Ssex ,
      Sage int,
      Sdept char(10)
    )
            机房收费系统表例如以下:

            1、学生表:卡号、学号、姓名、类型、性别、系别、年级、班级、金额、状态、备注。


            2、上机表:卡号、类型、学号、姓名、系别、性别、上机日期、下机日期、上机时间、下机时间、消费时间、消费金额、剩余金额。


           3、充值表:卡号、充值金额、充值时间、充值教师。
           4 、用户表:username、password、身份、操作人。


           5、退卡表:卡号、退款金额、退卡时间、办理退卡教师、结账状态。
           6、操作员工工作记录表:序列号、教师、身份、注冊日期、注冊时间、注销日期、注销时间。
           7、结账信息表:售卡张数、总售卡张数、退卡张数、应收总金额、充值金额、暂时收费金额。
           8、基本数据设定信息表:固定半个小时费用、暂时半个小时费用、递增单位时间、至少上机时间、准备时间、最少金额。
           9、正在值班教师信息表:记录号、教师名、身份、登陆日期、登录时间。
         10、日结账信息表:上次充值卡剩余金额、当日充值金额、当日消费金额、本次充值卡金额、日期。


         11、周结帐信息表:上次充值卡金额、本次充值金额、本次消费金额、本次充值卡剩余金额、日期。

           初次设计数据库。存在非常多缺陷。有不允许见的小伙伴欢迎留言交流。机房收费系统个人重构版,未完待续......

  • 相关阅读:
    MATLAB远程桌面打开失败解决办法
    Windows 10 激活步骤
    Windows 10 重装技巧
    Office2019部署代码
    vi命令行命令的积累
    github项目cim(命令行即时通讯), HashedWheelTimer学习笔记
    java读取资源文件/打jar包后读取资源文件的区别
    vmware虚拟机网络配置(物理机能用ssh连接虚拟机, 虚拟机能共享物理机网卡上外网)仅主机模式,nat模式应该也可以
    spring cloud 组件学习 hystrix学习
    netty优化学习积累+++++++
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6940543.html
Copyright © 2011-2022 走看看