资源描述
二手交易网站数据库设计说明书文档版本号:1.02012/6/7作者:白萌,吴啸目录1.引言11.1 编写目的11.2 项目背景11.3 定义21.4 文档约定21.5 参考文献22.需求分析32.1 数据流程32.2 数据字典73.概念结构设计83.1 概念设计任务83.2 E-R图设计94.逻辑结构设计121.引言1.1 编写目的该系统实现了在较小范围内的二手商品交易平台的搭建,为人们闲置的二手商品提供了一个交易平台。此文档用于二手交易网站的数据库设计流程记录与说明。 预期的读者对象:程序开发人员、测试人员、需求人员1.2 项目背景l 项目名称:二手交易网站l 项目发起者:杨晶老师l 小组成员:白萌、吴啸l 项目简介:本项目二手商品交易网站的核心业务目标是为一些对二手商品有需求的人群提供方便、健全、快捷的交易平台。通过二手交易平台有此方面需求的人群可以发布自己闲置的二手商品、购买自己中意的二手商品。l 项目目的:在整个开发过程中以团队的形式进行项目的设计与开发,加强个人的团队合作精神和勤于思考乐于讨论的能力。1.3 定义E-R图即实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。1.4 文档约定该数据库具体属性的命名根据其中文意思翻译成英文,有实际字面含义。1.5 参考文献(1) 王水,张晓民.软件工程素质导论.郑州:河南科学技术出版社,2011年.(2)马晓玉,孙岩.oracle 10g 数据库管理 应用与开发 标准教程:清华大学出版社,2011年.(3)威格斯.软件需求.刘伟琴,译.北京:清华大学出版社,2004.2.需求分析2.1 数据流程数据流图1-1(顶层图)数据流图1-2(0层图)(商品信息管理)数据流图 1-3(用户信息管理)数据流图 1-4(商品信息搜索)数据流图 1-5(订单处理)数据流图 1-62.2 数据字典主要的数据流条目数据流名称:用户信息别名:无简述:用户注册本网站会员时填写的信息来源:会员去向:加工“注册”和会员“个人信息管理”数据流量:网站的注册会员人数组成:会员编号+用户名+密码+电子邮箱 数据流名称:二手商品信息别名:无简述:卖家发布的二手商品信息来源:卖家去向:卖家“商品发布”和 “二手商品信息管理” 数据流量:本平台的二手商品数量 组成:商品编号+商品名称+商品发布者+商品人气+商品介绍+商品图片+商品所属类别+商品评价+商品原价+新旧程度+商品二手价+所属卖家ID 数据流名称:二手商品类别信息 别名:无简述:卖家发布商品时选择的项目来源:卖家去向:加工卖家“商品发布”、“二手商品信息管理” 数据流量:本平台的二手商品类别量 组成:商品大类别编号+商品小类别编号+商品大类别名称+商品小类别名称 数据流名称:订单信息别名:无简述:买家订货时填写的项目 来源:买家去向:加工“检验订单” 数据流量:买家订货的订单数 组成:订单编号+商品编号+商品数量+商品单价+商品总价+收货人姓名+收货人地址+联系电话+电子邮箱+卖家ID+买家ID主要数据存储条目(1) 数据存储名称:用户信息记录别名:无简述:存放本平台所有会员的基本信息组成:用户编号+用户名+密码+电子邮箱组织方式:索引文件,以用户编号为关键字 查询要求:要求能立即查询(2) 数据存储名称:二手商品记录别名:无简述:存放本平台所有二手商品的基本信息组成:商品编号+商品名称+商品发布者+商品人气+商品介绍+商品图片+商品所属类别+商品评价+商品原价+新旧程度+商品二手价+所属卖家ID组织方式:索引文件,以商品编号为关键字查询要求:要求能立即查询(3) 数据存储名称:二手商品类别记录别名:无简述:存放本平台所有二手商品的类别信息组成:商品大类别编号+商品小类别编号+商品大类别名称+商品小类别名称组织方式:索引文件,以商品类别编号为关键字 查询要求:要求能立即查询(4) 数据存储名称:订单记录别名:无简述:存放本平台所有订单的基本信息组成:订单编号+商品编号+商品数量+商品单价+收货人姓名+收货人地址+联系电话+电子邮箱+卖家ID+买家ID组织方式:索引文件,以订单编号为关键字 查询要求:要求能立即查询3.概念结构设计3.1 概念设计任务识别二手交易网站平台中的实体,识别实体的属性,识别实体的关键字,识别实体间的联系,利用实体关系图(ER图)来描述二手交易网站平台中的相关实体、属性及关系,从而达到为建立良好的二手交易网站平台的数据模型的目的。3.2 E-R图设计根据前面的需求分析,可以将网上购物系统的数据库实体划分为用户信息实体集、商品信息实体集、商品大类别实体集、商品小类别实体集、留言信息实体集、买家订单实体集、订单详细信息实体集、公告信息实体集、管理员实体集九个实体。每个实体定义的属性如下:l 用户:用户编号,用户名,密码,电子邮箱l 管理员:用户编号,用户名,密码,电子邮箱l 商品:商品编号,名称,人气,简介,图片,所属类别,原价,二手价,新旧程度,所属卖家名称l 商品父类别:父类别编号,父类别名称l 商品子类别:子类别编号,子类别名称, 所属父类别编号l 留言信息: 留言编号, 所属用户名, 留言内容, 留言回复内容, 所属商品编号, 留言发布时间l 买家订单: 订单编号, 买家名称, 卖家名称, 收货人姓名, 收货地址, 联系电话, 电子邮箱, 订单生成时间, 订单总价, 订单状态, 配送方式l 订单详细信息: 详细信息编号, 订单编号, 商品编号, 商品名称, 商品单价, 商品数量, 商品总价l 公告: 公告编号, 公告标题, 公告内容,发布时间图 1-1 (用户及属性的E-R图)图 1-2 (商品及属性的E-R图) 图 1-3 (商品父类别及属性的E-R图)图 1-4 (商品子类别及属性的E-R图) 图 1-5 (留言信息及属性的E-R图)图 1-6 (公告及属性的E-R图)图 1-7 (买家订单及属性的E-R图)图 1-8 (订单详情及属性的E-R图) 图 1-9 (管理员及属性的E-R图) 图 1-10 (系统总E-R图)4.逻辑结构设计4.1 逻辑设计任务 将E-R图转换为关系模型,即将实体、实体的属性和实体之间的联系转化为关系模式。4.2 关系模型的设计数据项名数据类型精度 别名 是否为空 主外键useridnumber用户编号否usernamevarchar220用户名否主键upasswordvarchar220用户密码否uemailvarchar250用户邮箱否表 1-1 用户信息表数据项名数据类型精度 别名 是否为空 主外键adminidnumber管理员编号否主键adminnamevarchar220管理员名否apasswordvarchar220管理员密码否aemailvarchar250管理员邮箱否表 1-2 管理员信息表数据项名数据类型精度 别名 是否为空 主外键goodsidnumber商品编号否主键goodsnamevarchar250商品名称否popnumber商品人气否introvarchar250商品简介否picturevarchar250图片否smallsortidnumber类型ID否pricenumber原价否secpricenumber二手价否conditionvarchar220新旧程度否usernamevarchar220卖家名称否外键goodsnumnumber商品数量否表 1-3 商品信息表数据项名数据类型精度 别名 是否为空 主外键bigsortidnumber父类别编号否主键bigsortnamevarchar220父类别名否表1-4 商品父类别表数据项名数据类型精度 别名 是否为空 主外键smallsortidnumber子类别编号否主键smallsortnamevarchar220子类别名否bigsortidnumber父类别编号否外键表 1-5 商品子类别表数据项名 数据类型精度别名是否为空主外键mesid number留言编号 否 主键username varchar2 20所属用户名 否 外键 mescontent varchar2 200留言内容 否 recontent varchar2 200 回复内容 是 goodsid number商品编号 否 外键 mestime date 发布时间 否 表1-6 留言信息表数据项名数据类型精度别名是否为空主外键orderid number订单编号 否主键 username varchar2 20买家名称 否 username1 varchar2 20卖家名称 否 namevarchar2 20收货人姓名 否 addressvarchar2 50收货地址 否 tel number联系电话 是 emailvarchar2 20电子邮箱 是 ordertime date订单生成时间 否 cost number订单总价 否 state varchar2 20订单状态 否 send varchar2 20配送方式 否表1-7 买家订单信息表数据项名数据类型精度别名是否为空主外键contentidnumber详情编号 否 主键orderid number订单编号 否 外键 goodsid number商品编号 否 外键 goodsname varchar2 20商品名称 否 goodsprice number商品单价否 goodsnumnumber商品数量否 concostnumber商品总价否表1-8 订单详细信息表数据项名数据类型精度别名是否为空主外键portidnumber公告编号否主键title varchar250公告标题否contentvarchar2200公告内容否createtimedate发布时间否 表1-9 公告信息表数据项名数据类型精度别名是否为空主外键messageid number 短信息编号 否 主键 username varchar2 20 卖家用户名 否 username1 varchar2 20 买家用户名 否 content varchar2 200 消息内容 否 createtimedate 消息发送时间 否 表1-10系统短信息表4.3 视图的设计为用户搜索商品建立视图:数据项名数据类型精度 别名 是否为空goodsidnumber商品编号否goodsnamevarchar250商品名称否popularitynumber商品人气否introductionvarchar250商品简介否pictureimage图片否typevarchar250类型否pricemoney原价否secpricemoney二手价否conditionvarchar220新旧程度否useridvarchar220卖家名称否表 1-10 搜索商品视图5.物理结构设计5.1 物理设计任务与目标为上一阶段的关系模型选取一个最适合的应用要求的物理结构,即确定存取方法和存储结构。5.2索引存取方法为了提高让用户搜索商品的速度,对二手商品信息建立聚簇索引。6.数据库实施6.1 存储过程、函数、触发器创建存储过程:create or replace procedure proc_login( name varchar2, password varchar2)as uinfo userinfo%rowtype;begin select * into uinfo from userinfo where username=name and upassword=password; exception when others then rollback; raise;end proc_login;存储过程1-1(会员登录检测)create or replace procedure proc_regsiter( uid number, uname varchar2, upwd varchar2, email varchar2)asbegin insert into userinfo(userid,username,upassword,uemail) values (id.nextval,uname,upwd,email); exception when others then rollback; raise; end proc_regsiter; 存储过程1-2(会员注册)create or replace procedure proc_goods( goodsname1 varchar2, pop1 number, intro1 varchar2, picture1 varchar2, smallsortid1 number, price1 number, secprice1 number, condition1 varchar2, username1 varchar2, goodsnum1 number )asbegin insert into goodsinfo(goodsid,goodsname,pop,intro,picture,smallsortid,price,secprice,condition,username,goodsnum)values(id.nextval,goodsname1,pop1,intro1,picture1,smallsortid1,price1,secprice1,condition1,username1,goodsnum1);exception when others then rollback; raise;end proc_goods; 存储过程1-3(发布商品)create or replace procedure proc_mesinfo( mesid1 number, username1 varchar2, mescontent1 varchar2, goodsid1 number, mestime1 date)asbegin insert into mesinfo (mesid,username,mescontent,goodsid,mestime) values(id.nextval,username1,mescontent1,goodsid1,mestime1); exception when others then rollback; raise;end proc_mesinfo;存储过程1-4(发表留言)函数:create or replace function func_searchgoods( smallsortid1 in number) return table as type ginfo is table of goodsinfo%rowtype index by binary_integer;begin select * into ginfo from goodsinfo where smallsortid = smallsortid1; return ginfo; end func_searchgoods;触发器:create trigger insert_content_triggerafter inserton orderinfofor each rowbegininsert into message (messageid,username,username1,content,createtime) values (id.nextval,:new.username,:new.username1,卖家请发货,sysdate); end;6.2 数据库创建prompt create user business.create user business identified by bus;prompt grant dba to business.grant dba to business;prompt connect business userconn business/busprompt Created on 2012年6月8日 by 白萌,吴啸set feedback offset define offprompt Creating sequence id.create sequence idstart with 1increment by 1nomaxvaluenocycle;prompt Creating userinfo(用户信息表).create table userinfo( userid number, username varchar2(20) primary key, upassword varchar2(20) not null, uemail varchar2(50) not null);prompt Creating admininfo(管理员信息表).create table admininfo( adminid number primary key, adminname varchar2(20) not null, apassword varchar2(20) not null, aemail varchar2(50) not null);prompt Creating goodsinfo(商品信息表).create table goodsinfo( goodsid number primary key, goodsname varchar2(50) not null, pop number not null, intro varchar2(50) not null, picture varchar2(50) not null, smallsortid number not null, price number not null, secprice number not null, condition varchar2(20) not null, username varchar2(20) not null, goodsnum number not null);prompt Creating bigsort(商品父类别表).create table bigsort( bigsortid number primary key, bigsortname varchar2(20) not null);prompt Creating smallsort(商品子类别表).create table smallsort( smallsortid number primary key, smallsortname varchar2(20) not null, bigsortid number not null);prompt Creating mesinfo(留言信息表).create table mesinfo( mesid number primary key, username varchar2(20) not null, mescontent varchar2(200) not null, recontent varchar2(200), goodsid number not null, mestime date not null);prompt Creating orderinfo(买家订单信息表).create table orderinfo( orderid number primary key, username varchar2(20) not null, username1 varchar2(20) not null, name varchar2(20) not null, address varchar2(50) not null, tel number, email varchar2(20) not null, ordertime date not null, cost number not null, state varchar2(20) not null, send varchar2(20) not null);prompt Creating content(订单详细信息表).create table content( contentid number primary key, orderid number not null, goodsid number not null, goodsname varchar2(20) not null, goodsprice number not null, goodsnum number not null, concost number not null);prompt Creating port(公告信息表).create table port( portid number primary key, title varchar2(50) not null, content varchar2(200) not null, createtime date not null);prompt Creating message(系统短消息表).create table message( messageid number primary key, username varchar2(20) not null, username1 varchar2(20) not null, content varchar2(200) not null, createtime date not null);prompt Loading userinfo.insert into userinfo (userid,username,upassword,uemail)values (id.nextval,吴啸,123,baixiaodianyeah.net);insert into userinfo (userid,username,upassword,uemail)values (id.nextval,白萌,12,baixiaodianyeah.net);commit;prompt 2 records loaded
展开阅读全文