网络购物系统数据库设计说明书.pdf
网络购物 数据库设计说明书 撰写:日期:审核:日期:批准:日期:目录 1 引言.3 1.1 编写目的.3 1.2 背景.3 1.3 定义.3 1.4 参考资料.4 2 外部设计.4 2.1 标识符和状态.4 2.2 使用他的程序.4 2.3 约定.4 2.4 专门指导.5 2.5 支持软件.5 3 结构设计.6 3.1 概念结构设计.6 3.2 逻辑结构设计.6 3.2.1 关系模型.6 3.2.2属性表.7 3.3 物理结构设计.8 4 运行设计.10 4.1 数据字典设计.10 4.2 安全保密设计.11 数据库设计说明书 1 引言 1.1 编写目的 本文对“网络购物系统”的数据库进行设计和分析,并列出详细的关系表的逻辑和物理结构,供数据库管理员和软件开发人员阅读。1.2 背景 a.待开发的数据库名称拟为网络购物,供本项目网络购物系统使用。b.本项目提出者为:网络购物中心;本项目的开发人员如下表:职务 人 员 名 单 项目经理 卢志杨 需求分析师 张普 概要设计 王高峰 详细设计师 郭小龙 代码工程师 毛伟龙 熊乐 测试工程师 任凯 本项目的用户群为:中小型网上购物中心。1.3 定义 1).数据字典 数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果,通常包括据项数、数据结构、数据流、数据存储和处理过程五个部分;是对数据流图的详细描述。2).订单明细 订单明细是指一张订单中对于一件商品的数量和订购价格的详细说明。1.4 参考资料 1).网络购物系统需求分析说明书 2).网络购物系统概要设计说明书 3).数据库系统概论第四版 萨师煊 王珊 高等教育出版社 4).数据库系统设计、实现与管理第三版 电子工业出版社 2 外部设计 2.1 标识符和状态 数据库软件:MySQL-5.0.51a;系统要求建立的数据库名称:Mail;数据库服务器版本:5.0.51a-community-nt-log 数据库协议版本:10 数据库服务器:localhost via TCP/IP 数据库用户:rootlocalhost MySQL 字符集:UTF-8 Unicode(utf8)MySQL 连接校对:utf8_unicode_ci MySQL 客户端版本:5.0.51a MySQL 客户端使用 PHP 扩展:mysql MySQL 客户端语言:中文简化版 主题、风格:Original 支持的系统:Windows、Linux 操作系统 2.2 使用他的程序 本数据库有网络购物系统V1.0 使用。2.3 约定 本数据库名称为:网络购物;英文名为:Online Shopping;数据库中各个关系表的名称统一为:tab_xxx,如“用户信息表”为“tab_user”;每个表中的各属性名称为:表名称的首字母缩写+属性含义,如“用户信息表”中属性“用户名”为“Uname”。2.4 专门指导 1).由于管理员的信息是由操作人员直接添加在数据库管理员信息表中的,因此需要培训客户了解和掌握基本的数据库操作,如添加,删除和修改记录;2).本购物系统中其他的管理员和用户对于数据的操作都可以通过图形化界面来进行,通过阅读开发人员提供的用户手册用户可以方便快速地熟悉该系统操作流程。2.5 支持软件 1).数据库管理系统:MySQL5.0 MySQL 体积小、速度快、可以处理拥有上千万条记录的大型数据库,总 体拥有成本低,是中小型网站选择数据库的首选;另外5.0版本还增加了系统报错机制以及对外键的良好支持和对存储过程的充分支持。2).Mysql 管理软件:sqlyog7.0 Sqlyog 是一款简洁、高效、功能强大的图形化 MySQL 数据库管理工具;使用 SQLyog 可以快速直观地通过网络来维护远端的 MySQL 数据库。3 结构设计 3.1 概念结构设计 3.2 逻辑结构设计 3.2.1 关系模型 注册用户表:tab_user(Uname,Upwd,Usex,Uquestion,Uanswer,Uemail,Ucodenum,Urank,Uaccount,Udaijinquan,Upoints)管理员信息表:tab_admin(Aname,Apwd,Aemail)订单信息表:tab_order(Oid,Oreceiver,Oaddress,Ophone,Opost,Odate,Ouser(FK),Odelivery(FK),Ostate)Ouser(FK)tab_user(Uname)Odelivery(FK)tab_delivery(Did)订单明细表:tab_item(Igood(FK),Iorder(FK),Iquantity,Iprice)Igood(FK)tab_goodinfo(GIid)Iorder(FK)tab_order(Oid)商品信息表:tab_goodinfo(GIid,GIname,GIprice,GImarprice,GInumber,GIbrand,GIdesc,GIimgpath,GIcount,GIdiscount,GIthirdnavi(FK)GIthirdnavi(FK)tab_thirdnavi(TNid)3.2.2 属性表 1.注册用户表(tab_user)字段名称 数据类型 是否允许为空 缺省值 字段描述 备注 Uname Varchar(20)NOT NULL 用户名 主键 Upwd Varchar(255)NOT NULL 用户密码 6-20 位包含数字和字母的字符串(加密)Uemail Varchar(30)NOT NULL 电子邮件 包含字符 2.管理员信息表(tab_admin)字段名称 数据类型 是否允许为空 缺省值 字段描述 备注 Aname Varchar(20)NOT NULL 管理员账号 主键 Apwd Varchar(255)NOT NULL 管理员密码 Aemail Varchar(30)NOT NULL 管理员 email 3.订单信息表(tab_order)字段名称 数据类型 是否允许为空 缺省值 字段描述 备注 Oid Varchar(20)NOT NULL 订单编号 主键;Oreceiver Varchar(20)NOT NULL 收货人姓名 Oaddress Varchar(255)NOT NULL 收货地址 Ophone Varchar(30)NOT NULL 收货人电话 Opost Varchar(6)NOT NULL 邮编 Otime DATETIME 订单时间 Ouser Varchar(20)NOT NULL 用户名 外键 tab_user(Uname)Ostate Tinyint(1)NOT NULL 0 当前订单状态 0:未发货 1:已发货 2:已收货 4.订单明细表(tab_item)字段名称 数据类型 是否允许为空 缺省值 字段描述 备注 Igood Int NOT NULL 外键 主键;外键(商品)tab_goodinfo(GIid)Iorder Varchar(20)NOT NULL 订单编号 主键;外 键(订 单)tab_order(Oid)Iquantity Int NOT NULL 商品数量 Iprice Double NOT NULL 订单商品单价 用户下订单时商品的单价 5.商品信息表(tab_goodinfo)字段名称 数据类型 是否允许为空 缺省值 字段描述 备注 GIid Int NOT NULL 商品编号 主键;自动增长 GIname Varchar(30)NOT NULL 商品名称 GIprice Double NOT NULL 商品价格 GInumber Int NOT NULL 商品数量 GIbrand Varchar(30)商品类型 GIdesc Varchar(255)NOT NULL 商品简述 GIimgpath Varchar(100)商品图片路径 GIcount Int NOT NULL 0 购买次数 3.3 物理结构设计 数据库名称:网络购物;存储位置:默认位置;主键和索引:序号 表名称 主键 索引 1 注册用户表(tab_user)Uname(用户名)Uname(用户名)2 用户信息表 UIname UIname (tab_userinfo)(用户名)(用户名)3 管理员信息表(tab_admin)Aname (管理员帐户名)4 订单信息表(tab_order)Oid (订单编号)Ouser (下订单用户)Otime(订单时间,抽奖功能需要检索)5 订单明细表(tab_item)IOid、IGid(订单号、商品编号)6 商品信息表(tab_goodinfo)GIid (商品编号)GIname (商品名称)GIbrand (商品品牌)GIcount(购买次数)4 运行设计 4.1 数据字典设计 数据库建模有一种图形方法,称为实体联系图(entity-relationship diagram),既 E/R 图。E/R 图具有三个主要的部分:1 实体集。客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系,如一个职工,一个学生,学生的一次选课,部门的一次订货,老师与系的工作关系等都是实体。数据项 数据结构 数据存储 数据处理 数据流 组成 n 1 生成 生成 流入 流出 流出 流入 2 属性。属性是描述实体某个特性的值。一个实体可以有多个属性来刻画。例如,学生实体可以有学号,姓名,性别,出生年份,系,入学时间等属性组成。3 联系。联系是两个或多个实体集之间的连接。两个实体集之间的联系可以分为三类:一对一的联系(1:1)如果对于实体集A 中的每一个实体,实体集B 中至多有一个实体与之联系,反之亦然则称实体集A 与实体集B 具有一对一的联系。一对多的联系(:n)如果对于实体集A 中的每一个实体,实体集B 中有n(n=0)个实体与之联系,反之,对于实体集B 中的每一个实体,实体集A 中至多有一个实体与之联系,则称实体集A 与实体集B 具有一对多的联系。多对多的关系(n:n)如果对于实体集A 中的每一个实体,实体集B 中有n(n=0)个实体与之联系,反之,对于实体集B 中的每一个实体,实体集B 中有m(m=0)个实体与之联系则称实体集A 与实体集B 具有多对多的联系。在 E/R 图中,一般用矩形表示实体,在矩形框内写明实体名字。用椭圆表示属性,并用无向边将其与相应实体连接起来。联系用菱形表示,菱形框内写明联系名,并用无向边将其与有关实体连接起来。同时在无向边旁边标上联系的类型(:1,1:n,m:n)。4.2 安全保密设计 本系统在登录时采用登录名和数据库的注册用户信息表中的用户名核对的方式来确保系统的安全性,如此通过源代码无法得知用户名和密码;项目完成后交付给客户,客户的数据库管理员可以自行更改数据来确保管理员和用户帐户的保密性和安全性。