机房重构(C#)--数据库设计

解说

本次重构共用到了八个数据库,从原来的很多个减少至了单位数,减少了数据耦合,增大了内聚,因为机房算是个小项目,所以没有用到主外键,默认的每个里面有User。

关系模式:

UserInfo:(UserID,UserName,Password,Level,Head)

Student:(studentNo, studentName, sex, department, grade,
specialty, balance, Head, state, IsChec )

ReCharge: (UserID, RechCash, RechDate, RechTime, Head, State, IsCheck )

LineLog:(UserID, onDatem, offDate, cash, state)

Check:(UserID, ALLCash, RechargeCash, RegisteCash, Head, Date, Time)

CancelCard:(UserID,Head,state,CancelDate)

BasicDate: (Rate,tmprete,LeastCash,UnitTime,Head)

WorkLog:(UserID,LoginDate,LogoutDate,computer,state)

逻辑结构

登录表:
所有的账户都存在这个表里面。

描述名称默认值或绑定数据类型允许Null值长度
账号UserIDVarchar10
姓名UserNameVarchar10
密码PassWordVarchar10
是否可用[Level]Varchar10
注册人HeadVarchar10

学生信息表:
如果想查日期,可以去充值里面查询注册。

描述名称默认值或绑定数据类型允许Null值长度
学号studentNochar8
学生姓名studentNamechar
性别sexchar8
学院departmentchar8
年级gradechar
班级specialtychar8
余额balancedecimal18
注册人Headchar8
是否可用statebit
是否结账IsCheckchar10

充值记录表:
充值类型分为:充值和注册

描述名称默认值或绑定数据类型允许Null值长度
账号UserIDchar10
充值金额RechCashnumeric18
充值日期RechDatechar10
充值时间RechTimechar10
充值人员Headchar10
充值类型Statenchar10
是否结账IsChecknchar10

退卡表:
是否可用:false,退卡不退钱,一般不退卡,毕业自动清理

描述名称默认值或绑定数据类型允许Null值长度
账号USerIDnchar10
操作员Headnchar10
是否可用statebit
退卡时间CancelDate(getdate())smalldatetime

上机记录表:

(getdate()) 为自动加载数据库的时间,而非显示的时间。取消了Online表则添加了是否上机。

描述名称默认值或绑定数据类型允许Null值长度
账号UserIDchar10
上机时间onDate(getdate())datetime
下机时间offDatedatetime
上机金额cashdeicimal18
是否上机statebit

基础设定表:

描述名称默认值或绑定数据类型允许Null值长度
会员Ratedeicimal18
非会员tmpRatedeicimal18
最少金额LeastCashdeicimal18
固定时间UnitTimenchar10
设定人员Headnchar10

账单:
日期和时间分开写是为了通过日期的比较显示出来,所以除了结账的其他都可以自动getdate

描述名称默认值或绑定数据类型允许Null值长度
账号UserIDnchar10
盈利金额ALLCashdeicimal18
充值金额Rechargedeicimal18
注册金额RegisteCashdeicimal18
结账人Headnchar10
日期Datedate
时间Timetime7

工作记录表:

描述名称默认值或绑定数据类型允许Null值长度
账号UserIDchar10
上班时间LoginDate(getdate())datetime
下班时间LogoutDatedatetime
工作电脑computernvarchar50
是否在线statebit

char、varchar、nchar、nvarchar区别:

char:固定长度,存储ANSI字符,不足的补英文半角空格。

nchar:固定长度,存储Unicode字符,不足的补英文半角空格。

varchar:可变长度,存储ANSI字符,根据数据长度自动变化(n值为1-8000之间,存储为字节实际长度吗,而不是n,可以输0,比nvarchar更节省时间)

nvarchar:可变长度,存储Unicode字符,长度自动变化(n值介于1-4000之间,字节存储大小是字符的两倍,可以输入0,)

可参考:
https://www.cnblogs.com/14lcj/archive/2012/07/08/2581234.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值