《生产资料系统 数据库需求分析.doc》由会员分享,可在线阅读,更多相关《生产资料系统 数据库需求分析.doc(7页珍藏版)》请在金锄头文库上搜索。
1、生产资料系统数据库需求分析一、公共系统部分:数据库需求分析系统要求必须维护用户数据,验证用户是否有权限使用该系统,同时是否有权限使用各功能模块。同时在Users(用户表)中,要记录当前用户的姓名、在线状态、所属地市等信息。为了系统的安全性,还需要增加用户操作日志,表名为Blog(日志表)中,记录用户登录系统后的操作。通过以上分析,数据库设计必须满足以下几点: 用户ID必须唯一。 每个用户ID必须对应一个用户组名称,以方便用户进行某些操作时判断是否拥有权限。 具体的所有的权限种类放在操作类型元素表中(操作元素ID, 操作对象描述) ,不同的用户组拥有不同的操作权限。 登录系统、退出系统和在各功能
2、模块中进行各项操作时写入用户操作记录表中的用户字段必须和用户表中的用户ID相关联。数据库概念结构设计通过对些系统的公用系统的总体分析,可以得到大概的实体关系模型(E-R模型)如下:权限表(Role):(用户组名称,操作对象ID)用户信息表(Users):(用户ID,用户名称,用户姓名,出生日期,性别,电话,所属地市,所属部门等)用户状态表(UserState):(用户ID,用户姓名,用户密码,用户组名称,用户在线状态)。操作类型元素表(OpType):(操作对象ID,操作对象描述)日志表(Blog):(记录号,时间,事件,对象,用户,所属用户组名称)其中:事件为操作描述:登陆系统,退出系统,增
3、加,修改,删除,打印输出,excel操作,浏览不做记录;对象为操作的对象其中:用户表的用户组名称应该等于权限表的用户组名称。其中:权限表的操作对象ID应该等于元素表的操作对象ID.数据库逻辑结构设计该系统的公共部份数据库中的各个表的设计结果如下面的表格所示。每个表格表示在数据库中的一个表。公共部份的数据库由以下几个数据表组成。 Role:权限表,初始有系统管理员,用户种角色; Users:用户信息表,初始有Admin、User个用户; UserState:用户状态表,用户登录系统后再写入其中的详细信息。用户在线状态有表示在线; OpType:操作类型元素表,实始有登录、进入维护模块、进入工程模
4、块、查询统计、维护系统种类型;Blog:日志表,用户的每次操作都会记录其中。下图为权限表。每种不同的角色拥有不同的操作权限,这些权限是通过字段RightLevel来标识的字段名字段说明数据类型/长度必填字段UserGroup用户组名称Varchar(50)YRoleId 操作对象ID IntY下图为用户信息表。用户信息表记录用户资料,用于检验用户登录和用户权限的管理。该表主要包括用户ID、姓名、密码及用户组名称等数据。字段名字段说明数据类型/长度必填字段UserId 用户IDIntYUserAccount用户帐号Varchar(50)YUserName用户姓名Varchar(20)YUserP
5、wd用户密码Varchar(20)YBirthday出生日期datetimeSex性别Varchar(2)Tele电话Varchar(20)Email电子邮箱Varchar(50)UserGroup用户组名称Varchar(50)YCityGroup所属城市名称Varchar(20)YUnitGroup所属部门名称Varchar(20)Y这里使用UserID和UserAccount两个字段来标识用户的妙处。UserID自动增长,UserAccount在添加用户时输入。这样当用户被删除后,再次添加登录帐号相同的用户时,由于UserID不同,也可以把他们区分开来。下图为用户状态表。用户状态表在添加
6、用户时随之写入。不同的是不登录时用户在线状态为,登录后用户在线状态改为。字段名字段说明数据类型/长度必填字段UserId用户IDIntYUserAccount用户帐号Varchar(50)YUserPwd用户密码Varchar(20)YCityGroup所属城市名称Varchar(20)YUnitGroup所属部门名称Varchar(20)YUserState用户在线状态Int Y(初值为0)下图为操作类型元素表字段名字段说明数据类型/长度必填字段OpTypeId操作类型IDIntYOpTypeName操作类型名称Varchar(50)Y这里的OpTypeId不是自动编号,因为它的值与程序中的
7、操作类型这一值要保持一致。下图为日志表。字段名字段说明数据类型/长度必填字段OpId操作编号IntYOpTypeId操作类型IDIntYOpTypeName操作类型名称Varchar(50)YUserId用户IDIntYUserAccount用户帐号Varchar(50)YUserGroup用户组名称Varchar(50)YCityGroup所属城市名称Varchar(20)YUnitGroup所属部门名称Varchar(20)YOpTime操作时间datetimeYOpTypeName操作类型描述Varchar(50)YOpObject对象(是系统还是模块的)Varchar(20)YRema
8、rks备注Varchar(50)下图是现有部门详情表字段名字段说明数据类型/长度必填字段UnitId部门编号IntYUnitName部门名称Varchar(50)YCityName部门所属城市Varchar(50)Y下图是现有地市详情表字段名字段说明数据类型/长度必填字段CityId城市编号IntYCityName城市名称Varchar(50)Y其中:部门所属城市名称即为现有城市详情表中的某一城市名称;在该系统中,在开始启动的类中要定义一Public 的用户信息结构;其中包含-用户名: U_info.UserName; 城市编号:U_info. CityId;城市名称U_info. CityN
9、ame;部门编号U_info. UnitId;部门名称:U_info. UnitName;用户组名称: U_info. UserGroup;是否管理员U_info.Manager; /0为普通用户,1为管理员 以上参数在登录系统时写入,写入后可在系统中任一地方调用!各模块中同!VB中以下代码放在类模块中:Public Type User_Info 定义用户信息结构 UserName As String 用户名 CityId As String 城市编号CityName As String 城市名称UnitId as string 部门编号UnitName as string 部门名称UserGroup as string 用户组名称 Manager As Integer 是否管理员,0为普通用户,1为管理员End TypePublic U_Info As User_Info 定义用户信息变量在c中:public classUSER_INFO()string UserName;string CityId;string CityName;string UnitId;string UnitName;string UserGroup;int16 Manager;