第6章 数据库设计与实现
实验一:会员管理数据库设计与实现
实验目标:
? 对用户需求进行需求分析 ? 基表及关系设计 ? 数据库实现代码 任务1:编写需求分析文档
步骤1:根据会员管理系统的需求,以ER图的方式定义数据的主体,属性,以及不同会员之间的关系,数据实体的ER图示例如下,用户可以定义自己的实体及属性,并指明关系。
例:学生选修课程 用椭圆表示实 体的属性 课程名 先修课 主讲老师 姓名 学号 系别用无向 边把实体与其属性连接起来 学生 m选修 联系的数量 成绩n课程 将参与联系的实体用线段连接 用菱形表示实体间的联系 用矩形表示实体型,在框内写上其名称 图6- 1 E-R图示例
步骤2:对每一个表格编写一个数据项调查表,如下所示。用户也可以添加更细致的数据属性名。 数据项组名: 特征
数据项名字 编号:
数据项名字 编号:
数据项名字 编号:
数据项名字 编号:
1
数据类型 数据宽度 小数位数 单位 值约束 允许空值否 值个数
步骤3:学员之间分别填写调查表,交换检查并提出问题,修改自己的表格,确定最终的用户需求。
任务2:数据库设计
步骤1:基表设计,共需要设计以下几个表格,用户可以根据情况进行更改、添加表,可参考下面的列表中的表。
表6- 1
表名称 user role group right role_right user_role group_role
用户表,保存用户信息 角色表,按职能来分类 组表,按部门来分类
权限表,对数据库或表的操作权限 角色-组表, 用户权限表 角色-组表
功能
步骤2:字段设计,用户确定每个基表的字段类型及长度。参照下面各表的形式,补充修改完各表中的字段设计。
user表 字段名
类型
长度(byte) 10 50
说明
主键,主索引
ID tinyint 4 Name varchar Address varchar role表 字段名
类型
长度(byte) 10 100
说明
主键,主索引
ID tinyint 4 Name varchar Context varchar group表 字段名
类型 长度(byte) 说明
2
ID tinyint 4 Name varchar Readme varchar right表 字段名
类型
长度(byte) 10 50 4 10 50
主键,主索引
说明
主键,主索引 父ID
ID tinyint 4 Name varchar Readme varchar PID tinyint role_right表 字段名
类型
长度(byte) 4 4
说明
主键,主索引
ID tinyint 4 Right_id tinyint Role_id tinyint
user_role表 字段名
类型
长度(byte) 4 4
说明
主键,主索引
ID tinyint 4 User_id tinyint Role_id tinyint group_role表 字段名
类型
长度(byte) 4 4
说明
主键,主索引
ID tinyint 4 Role_id tinyint Group_id tinyint 步骤3:分组对上述表及字段进行讨论,确定不同的表之间的关系。 步骤4:修改上述数据库中的表及字段的定义。 任务3:数据库实现
步骤1:针对上面的设计结果,在MySQL提示符下输入类似以下的命令,创建数据库。 mysql>CREATE DATABASE users;
步骤2:在MySQL提示符下输入类似以下的命令,创建user表及索引。 mysql>USE users;
mysql>create table user
3
-> (ID tinyint not null, -> Name varchar(10), -> Address varchar(50), -> primary key (ID) -> );
mysql>CREATE INDEX userid ON user(ID); 步骤3:参考步骤2的命令,依次创建其他表及索引。
实验说明:由于购物车系统中有许多功能模块,如会员管理、订单管理以及商品管理等,学员可以以上面的实验一中的会员管理为例,分别设计与实现其它子系统的数据库,最后再综合到一起,生成统一的购物车系统数据库。
4