数据库简单结构设计(机房收费系统)

概述

         机房收费系统之前用VB 6.0语言编写过,但是,那次自己设计的数据库很简单,没涉及什么存储过程,视图,触发器,连表和表之间的复杂关系都没有,这次机房收费系统是利用VB.net语言编写的,这个过程正在进行中,这次数据库的设计打算好好弄一弄,下面是这次数据库的简单结构设计。

E-R图

数据库简单结构设计(机房收费系统)_第1张图片

       初设计的时候,把Operate_Record关系变成了具体的删除、注册、修改关系,这样的话两个表的关系表变多了,

而且观察这些表,里面的东西大致一样,所以,就把这几个具体的关系变成了一个Operate_Record关系。


逻辑结构

(1)用户基本情况数据表User_Info,结构如下:

字段名(列名)

字段类型

约束控制

字段含义说明

User_ID

varchar(20)

Primary key

用户号

User_Key

varchar(20)

not null

密码

User_Type

varchar(20)

‘固定用户’或’临时用户’

用户级别

User_Name

varchar(20)

Not null

用户名

User_Sex

varchar(20)

Not null

性别

User_Major

varchar(20)

Not null

专业

User_State

varchar(20)

Not null

用户当前是否登录

User_Operate_ID

varchar(20)

Foreign key

操作号

User_Operate_Type

varchar(20)

Not Null

操作类型

注:User_State字段的目的:同一时刻不允许同一用户名登录系统;User_Operate_ID设为外键的主要目的:对User_Info的操作(注册、修改和删除)必须现在User_Operate_Record表中写下记录;User_Operate_type字段的目的:实现操作者对User_Info所做操作有据可寻,也就是说,对于修改(原)和删除的记录,都还在User_Info表中存在。

 

(2)记录对用户信息表操作的记录表User_Operate_Record,结构如下:

字段名(列名)

字段类型

约束控制

字段含义说明

User_Operate_ID

varchar(20)

primary key

操作号

User_Operator_ID

varchar(20)

Foreign key

操作者号

User_Operate_Date

Date

Not null

操作日期

User_Operate_Time

Date

Not null

操作时间

注:User_Operator_ID设为外键的目的:防止非法用户对User_Info表的操作;对User_info中注册记录寻找,不能通过操作类型来查找,因为,可能该记录已经被修改或删除了,这里需要强调的是,对原记录做修改或删除操作,会在元记录中的操作类型写下相应的操作,所以,这里不能通过操作类型来查找注册记录,但是,我们可以通过时间来查找注册记录信息。

 

(3)操作者基本情况数据表Operator _Info,结构如下:

字段名(列名)

字段类型

约束控制

字段含义说明

Operator_ID

varchar(20)

primary key

操作者号

Operator_Key

varchar(20)

not null

密码

Operator_Level

varchar(20)

‘普通操作者’或’操作者’或’管理员’

操作级别

Operator_Name

varchar(20)

Not null

操作者名

Operator_Sex

varchar(20)

Not null

性别

Operator_State

varchar(20)

Not null

操作者当前是否登录

Operator_Operate_ID

varchar(20)

Foreign key

操作号

Operator_Operate_Type

varchar(20)

Not null

操作类型

 

(4)记录对操作者信息表操作的记录表Operator_Operate_Record,结构如下:

字段名(列名)

字段类型

约束控制

字段含义说明

Operator_Operate_ID

varchar(20)

primary key

操作号

Operator_Operator_ID

varchar(20)

Foreign key

操作者号

Operator_Operate_Date

Date

Not null

操作日期

Operator_Operate_Time

Date

Not null

操作时间

注:记录操作者对操作者的管理记录。如表(2)注

 

(5)卡的基本信息表Card_Info,结构如下:

字段名(列名)

字段类型

约束控制

字段含义说明

Card _ID

varchar(20)

primary key

操作号

Card _User_ID

varchar(20)

Foreign key

操作者号

Card_Money

Real

null

卡内余额

Card_Operate_ID

varchar(20)

Foreign key

操作号

Card_Operate_Type

varchar(20)

not null

操作类型

 

(6)记录对卡信息表操作的记录表Card_Operate_Record,结构如下:

字段名(列名)

字段类型

约束控制

字段含义说明

Card _Operate_ID

varchar(20)

primary key

操作号

Card _Operator_ID

varchar(20)

Foreign key

操作者号

Card_Operate_Money

Real

null

操作金额

Card_Operate_Date

Date

Not null

操作日期

Card_Operate_Time

Date

Not null

操作时间

注:结合表(2)看,表(5)和表(6)的结合可以充值记录、退卡记录、注册记录、冻结和解冻卡的记录

 

(7)收费标准信息表BaseCharge_Info,结构如下:

字段名(列名)

字段类型

约束控制

字段含义说明

BaseCharge_ID

varchar(20)

primary key

编号

BaseCharge_Prepare_Time

Date

not null

单位时间

BaseCharge_Temporary_Cost

Real

Not null

临时用户收费金额

BaseCharge_FixUser_Cost

Real

Not null

固定用户收费金额

BaseCharge_Operate_ID

Varchar(20)

Foreign key

操作编号

BaseCharge_Operate_Type

Varchar(20)

Not null

操作类型

 

(8)记录对收费标准信息表操作的记录表BaseCharge_Operate_Record,结构如下:

字段名(列名)

字段类型

约束控制

字段含义说明

BaseCharge_Operate_ID

varchar(20)

primary key

操作号

BaseCharge_Operator_ID

varchar(20)

Foreign key

操作者号

BaeCharge_Operate_Date

Date

Not null

操作日期

BaseCharge_Operate_Time

Date

Not null

操作时间

注:只存放修改记录。收费标准信息表只有一条信息有用。

(9)操作者上机记录Operator_Login_Record,结构如下:

字段名(列名)

字段类型

约束控制

字段含义说明

Operator_ID

varchar(20)

primary key

操作号

Operator_Login_Date

Date

Not null

登录日期

Operator_Login_Time

Date

Not null

登录时间

Operator_Exit_Date

Date

Not null

退出日期

Operator_Exit_Time

Date

Not null

退出时间

Operator_Machine_ID

Varchar(20)

Not null

计算机名称

 

(10)用户上机记录User_Login_Record,结构如下:

字段名(列名)

字段类型

约束控制

字段含义说明

User_ID

varchar(20)

primary key

操作号

User_Login_Date

Date

Not null

登录日期

User_Login_Time

Date

Not null

登录时间

User_Exit_Date

Date

Not null

退出日期

User_Exit_Time

Date

Not null

退出时间

User_Common

Varchar(20)

Not null

计算机名称

 

        上面的一些表中没有单独的设置一个总结方面的表,自己想了一下,总结方面的信息可以通过几个数据表得出来,可能执行上有点,不过,正好可以练习一下存储过程。

总结

       上面的这些东西,自己花了几天的时间给弄出来的,对于数据库的行为设计估计也得花上一段时间。上面的图是x先在纸上画出来了,然后用Word做出来的,可能你会说,你怎么不用数据库设计方面的工具啊?需要说一下的是,今天上午才通过网络获得相应的信息,下载一个PowerDesigner。安装上了之后,自己不怎么会用,也上网找到了相应的教程,但是,心急着做出上面的那些图和表,于是就用Word先做了,在以后的过程中,自己会尝试着使用电脑上的工具来进行相应的设计。

你可能感兴趣的:(机房收费系统,数据库结构设计)