• 客房收费系统数据库设计


          之前。当学习编写计算机房收费系统文件。我写 机房收费系统数据库概念设计模型——ER图 这篇文章,如今到了机房收费系统个人版重构阶段,须要再次进行数据库的设计。

    能够说。之前的数据库的概念设计给我如今的设计奠定了一定的基础,可是仍然发现自己的设计中有很多不合理而且须要改进的地方。

          在这次的数据库设计其中,学习了一些数据库的命名规范,重温了经典的三范式(属性原子化。避免局部依赖。避免传递依赖)。

    可是发现,在需求面前,一些分属两张表的字段。为了方便,还是得放到一张表中,不得不破坏三范式。

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

    数据库名ComputerRoomChargeSystem

    学生信息表(T_StudentInfo

    名称

    意义

    类型

    studentID

    学号(主键)

    Char10

    studentName

    姓名

    Char10

    sex

    性别

    Char2

    department

    系别

    Char20

    grade

    年级

    Char10

    class

    班级

    Char10

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

    用户信息表(T_UserInfo

    名称

    意义

    类型

    UserID

    username(主键)

    Char10

    realName

    真实姓名

    Char10

    userLevel

    用户级别

    Char8

    userPassword

    用户password

    Char10

    accountHolder

    开户人

    Char10

    卡信息(T_CardInfo

    名称

    意义

    类型

    cardID

    卡号(主键)

    Char10

    studentID

    学号(外键)

    Char10

    account

    剩余金额

    Decimal10,4

    usageState

    使用状态

    Char6

    cardType

    卡类型

    Char8

    registrationDate

    注冊日期

    Date

    registrationTime

    注冊时间

    Time0

    UserID

    username

    Char10

    checkStatus

    结账状态

    Bit1

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

    账单(T_AccountSheet

    名称

    意义

    类型

    checkID

    结账编号(主键)

    Decimal18,0

    lastCardMoney

    上期充值卡金额

    Decimal18,4

    currentChargeMoney

    本期充值金额

    Decimal18,4

    currentReturnMoney

    本期退卡金额

    Decimal18,4

    currentConsumeMoney

    本期消费金额

    Decimal18,4

    currentCardMoney

    本期充值卡金额

    Decimal18,4

    checkDate

    结账日期

    Date

    checkTime

    结账时间

    Time0

    userID

    username

    Char10

    账单,我为其设置了一个结账编号,作为主键,我想在真正建表时,能够依照结账编号从大到小排列,由于在打印账单或是日结账, 周结账都是结近期的账单吧。

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

    充值记录表(T_ChargeRecord

    名称

    意义

    类型

    cardID

    卡号(外键)

    Char10

    chargeDate

    充值日期

    Date

    chargeTime

    充值时间

    Time0

    chargeMoney

    充值金额

    Decimal10,4

    checkStatus

    结账状态

    Bit1

    userID

    username

    Char10

    退卡记录表(T_ReturnRecord

    名称

    意义

    类型

    cardID

    卡号(外键)

    Char10

    returnDate

    退卡日期

    Date

    returnTime

    退卡时间

    Time0

    account

    退卡金额

    Decimal10,4

    checkStatus

    结账状态

    Bit1

    userID

    username

    Char10

    上下机记录表(T_OnOffLineRecord

    名称

    意义

    类型

    cardID

    卡号(外键)

    Char10

    onDate

    上机日期

    Date

    onTime

    上机时间

    Time0

    offDate

    下机日期

    Date

    offTime

    下机时间

    Time0

    offWay

    下机方式

    Char8

    consumeMoney

    消费金额

    Decimal10,4

    userID

    username

    Char10

    checkStatus

    结账状态

    Char6

    onFlag

    正在上机标志

    Bit1

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

    基本数据表(T_BasicData)

    名称

    意义

    类型

    fixedPerCharge

    固定每小时费用

    Decimal10,4

    temporaryPerCharge

    暂时每小时费用

    Decimal10,4

    increasingUnitTime

    递增单位时间

    SmallInt

    leastTime

    至少上机时间

    SmallInt

    prepareTime

    准备时间

    SmallInt

    minMoney

    最少金额

    Decimal10,4

    操作员工作记录(T_WorkLog)

    名称

    意义

    类型

    UserID

    username(外键)

    Char10

    LoginDate

    登录日期

    Date

    LoginTime

    登录时间

    Time0

    ExitDate

    注销日期

    Date

    ExitTime

    注销时间

    Time0

    onFlag

    正在上机标志

    Bit1

    computerID

    机器名

    Varchar10

         
         小结:自己感觉数据库设计是件非常有意思的事情,在画机房重构版的类图时,感觉还得先从一个数据库设计开始,因此数据库的设计还是很重要的啊!

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    static作用(修饰函数、局部变量、全局变量)(转)
    地弹
    开漏(open drain)和开集(open colletor)
    过冲、振铃,非单调性
    串扰(crosstalk)
    数字通信基本概念
    电源和地
    分布式系统与集总系统
    传输线及其特性阻抗
    MSP430G2553 Launchpad 硬件I2C驱动
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4822042.html
Copyright © 2020-2023  润新知