网上购物数据库设计
网上商城UML图

1.系统需求 (2)2.需求分析 (4)2.1功能设置 (4)2.2模块划分 (5)2.3识别参与者和用例 (6)2.3.1 顾客Customer用例图 (7)2.3.2 系统管理员用例 (13)2.3 静态结构模型 (16)2.3.1 类Customer (17)2.3.2类Goods (18)2.3.3类Order (19)2.3.4管理员 (19)2.3.5标题title类 (20)2.3.6二级标题类 (21)2.3.7公共操作类 (21)2.3.8类图 (22)3.动态行为模式 (22)3.1时序图 (22)3.1.1顾客注册成为会员时序图 (23)3.1.2顾客反馈信息时序图 (24)3.1.3顾客浏览商品时序图 (25)3.1.4顾客查询商品时序图 (26)3.1.5顾客购买商品时序图 (27)3.2.6管理员添加商品时序图 (28)3.2.7管理员删除商品时序图 (28)3.2.8管理员添加二级商品目录时序图 (29)3.2.9管理员删除二级商品目录时序图 (30)3.2.10管理员编辑促销产品时序图 (30)3.2.11管理员编辑条款信息时序图 (31)3.2.12管理员编辑购买流程时序图 (32)3.2.13管理员删除会员时序图 (33)3.2.14用户结算时序图 (34)3.3.活动图 (34)3.3.1用户顾客的活动图 (34)3.3.2管理端管理员的活动图 (35)3.4协作图 (37)3.4.1顾客登录协作图 (37)3.4.2顾客注册协作图 (37)3.4.3顾客浏览商品协作图 (38)3.4.4反馈信息协作图 (38)3.4.5顾客查询商品协作图 (39)3.4.6顾客购买商品协作图 (39)3.4.7管理员删除会员协作图 (40)3.4.8管理员添加商品协作图 (40)3.4.9管理员添加商品标题协作图 (41)3.4.10管理员删除商品协作图 (41)3.4.11管理员删除标题协作图 (42)3.4.12管理员编辑文本协作图 (42)4.系统数据库设计 (43)4.1数据库的需求分析 (43)4.2数据库的逻辑设计 (43)5.参考文献: (46)系统分工:梁志负责总体设计和画用例图、活动图:王向宝负责前台设计包括:注册、浏览、反馈、登录罗全力负责前台设计包括:购买、查询、顾客和管理员类的设计雅东负责后台设计包括:商品管理(添加、删除商品,添加、删除标题)、会员管理、商品类和标题类的设计俊负责后台设计包括:文本编辑管理(编辑购物流程、条款信息、促销信息)和订单管理、订单类的设计电子商务系统1.系统需求随着社会的发展,电子商务成为了一个热门的话题,而网上购物已经成为当今社会一种比较流行的购物方式。
UML课程设计--网上购物系统

《面向对象分析与设计》课程设计专业计算机科学与技术班级计算机08-1学号姓名指导教师完成时间2011-6-10成绩目录二设计目的 (3)1.需求分析 (3)系统功能分析 (3)三设计要求 (4) (4) (5) (7).................................................................................9........................................................................ 10 四用UML对系统建模 (12)1.用例图(用例建模)……………………………………………………12前台用户用例图及其文档 (12)后台管理员用例图及其文档 (14)2.系统类图 (16)3.顺序图 (17)4.构造活动图 (20)5.构造状态机图 (29)6.构件图 (33)7.部署图 (33)五使用说明书 (34)六工作总结 (39)一、设计题目:网上购物系统设计二、设计目的需求分析在线商城系统主要是针对中小型商城,购物系统管理员将商品信息整理归类发布到网上,用户登录该网站后,首先要注册为会员才能购买商品,提交订单给购物系统管理员,并同时将费用通过电汇或邮寄的方式交付到商城管理员处。
购物系统管理员在收到付款后,发货给购物者,并同时更新网上有关于该订单的付款状态,从而完成一次交易。
●只允许系统规定的购物系统管理员来添加和修改商品信息;购物系统管理员可以查看该系统的所有注册用户信息,可以修改某一个注册用户的基本信息,也可以删除某个用户;购物系统管理员可以查看该系统的所有订单,可以删除订单,也可以修改订单的付款状态、发货状态。
●任何一个网络用户都可以注册称为该系统的固定用户,注册时需要填写基本注册信息,还可以修改个人的基本信息。
●只有注册用户才能登录此系统,购买商品。
购买商品时可以任意选购商品,任意填写购买数量,可以修改已选择商品的购买数量,可以删除已选择的某一种商品,可以取消购买,可以提交购买下达订单确认一次购买成功。
数据库设计案例网上购物系统

网上购物系统1.系统需求分析网上购物系统分前台功能和后台功能两大部分。
前台主要供用户浏览和购买商品,后台主要供管理员使用,管理员可以对商品信息、订单信息及网站的新闻、公告进行管理。
1.1前台功能分析网上购物系统前台的用户共分两类:一类是注册用户(正式用户),这类用户有基本的信息,可以对自己的信息进行查看与修改,可以随时实现网上购物。
当用户在网站所购商品总金额达一定数量,可以根据所购商品总金额数量不同自动升级成为不同等级的VIP会员,并享受不同折扣优惠;另一类用户是游客(未注册用户),他们只能查看、浏览网站信息,可以把商品加入购物车或收藏夹,但不能实现购买。
游客:可以查看商品信息、浏览网站信息,可以把商品加入购物车或收藏夹,但不能实现购买。
经过注册可以成为注册用户。
注册用户:登录后对可以对个人信息进行查看和修改。
商品信息浏览、商品查找、商品评论和建议。
注册用户不仅可以对网站商品进行浏览和查找外,还可以对商品进行评论、向管理员发送消息提出自己的建议。
选购商品加入购物车或收藏夹、对购物车或收藏夹信息进行管理。
用户注册后,登陆到电子商务网站中,可以进入购物流程。
用户在浏览商品后,可将满意商品放入购物车或收藏夹,购物车内可以随意增加、删除商品,修改商品数量,并同时统计购物车内商品总额。
用户可对购物车的商品进行修改或删除,或对收藏夹中商品进行删除。
结帐、确认订单、订单状态查询、历史订单查询。
用户确认购物车内信息无误,即可生成订单。
在生成订单时,必须填写一张配送单。
配送单默认为用户注册时的基本信息,当然配送地址可由用户修改为合适的收货地址,支付方式也可根据提示由用户自定。
下单后,用户可以在前台页面查看订单状态,订单状态可以是“末处理”,“已发货”,“已付款”。
5、发表及回复留言。
为了加强注册用户之间的交流,网站还提供了论坛功能,注册用户可以在某一个论坛版块中发贴,也可以回复别人的贴子。
1.2后台功能分析网上购物系统后台主要是供管理员使用的,管理员可对商品的一级分类信息、二级分类信息、商品信息进行添加、删除、查询及修改;对用户订单进行处理;管理用户在论坛中发表的留言,删除不健康及不利于网站的留言;回复用户发送的消息;对网站的新闻、公告进行管理。
web网上购物系统课程设计

web网上购物系统课程设计一、课程目标知识目标:1. 让学生理解Web网上购物系统的基本概念、功能模块和工作流程。
2. 使学生掌握数据库设计、前端界面设计和后端逻辑处理的基本方法。
3. 帮助学生了解网络安全、支付流程和用户权限管理等相关知识。
技能目标:1. 培养学生运用HTML、CSS和JavaScript等前端技术设计美观、易用的购物界面。
2. 培养学生使用一种或多种后端编程语言(如PHP、Java、Python等)实现购物系统的功能。
3. 提高学生运用数据库管理系统(如MySQL)进行数据存储、查询和更新的能力。
4. 培养学生具备一定的项目分析和解决实际问题的能力。
情感态度价值观目标:1. 激发学生对电子商务的兴趣,培养其主动探索和创新的意识。
2. 培养学生具备良好的团队协作精神,提高沟通与协作能力。
3. 强化学生的网络安全意识,使其具备良好的网络道德素养。
课程性质:本课程为实践性较强的课程,旨在培养学生的实际操作能力和项目实践能力。
学生特点:高中年级学生,具备一定的计算机基础和网络知识,对新鲜事物充满好奇,喜欢动手实践。
教学要求:注重理论与实践相结合,强调学生的主动参与和动手能力,充分调动学生的学习积极性,培养其独立思考和解决问题的能力。
通过课程学习,使学生能够独立完成一个简单的Web网上购物系统项目。
二、教学内容1. 网上购物系统概述- 了解电子商务发展历程及网上购物系统的基本概念。
- 分析网上购物系统的功能模块和业务流程。
2. 数据库设计- 学习数据库的基本概念,掌握实体关系模型和关系数据库设计方法。
- 列举并设计网上购物系统所需的数据表结构。
3. 前端界面设计- 掌握HTML、CSS和JavaScript等前端技术。
- 设计并实现购物系统的前端界面,包括商品展示、购物车、订单提交等。
4. 后端逻辑处理- 学习一种或多种后端编程语言(如PHP、Java、Python等)。
- 实现用户注册、登录、商品管理、订单管理等功能模块。
基于Web的网上购物系统设计和实现

添加标题
添加标题
添加标题
添加标题
接口开发:提供API接口,实现前 后端数据交互
系统安全:对用户提交的数据进行 合法性校验,防止SQL注入等安全 问题
开发语言:HTML、CSS、 JavaScript
组件:表单、按钮、导航栏等
添加标题
添加标题
框架:Bootstrap、jQuery等
添加标题
添加标题
交互设计:用户界面设计、用户体 验优化等
图标和按钮:直观易懂,方 便用户识别
响应时间:快速响应,提高 用户满意度
用户登录注册
选购商品
添加标题
添加标题
浏览商品
添加标题
添加标题
结算支付
用户注册与登录模 块
商品展示模块
购物车模块
订单处理模块
PART FOUR
数据库设计:包括商品信息、用户 信息等数据表的设计
业务逻辑处理:根据用户请求,进 行相应的业务处理
XX,a click to unlimited possibilities
汇报人:XX
CONTENTS
PART ONE
PART TWO
用户群体特征:年龄、性别、职业等 用户购物习惯:购买频率、购买偏好等 用户需求分析:商品种类、价格范围、配送方式等 调研方法:问卷调查、访谈等
用户注册与登录功能 商品浏览与搜索功能 商品购买与结算功能 订单管理与物流跟踪功能
用户界面评估:评估系统的用户界面是否友好、易用 响应时间评估:评估系统的响应时间是否快速、稳定 功能评估:评估系统的各项功能是否满足用户需求 安全性评估:评估系统的安全性是否可靠、安全
用户数据加密存储 交易安全
增加用户友好性, 改善用户体验
案例二:网上购物系统UML课程设计RationalRose建模(综合)

后置条件:
如果用例成功,客户将收到发票。
用例:
Inform Warehouse about Order
简述:
在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的配置的细节。
参与者:
Salesman Warehouse
前提条件:
验证和接收客户付款成功。
Salesman选择系统提供的订购清单中该客户的订购信息,并点击Refer(或相似命名的)功能键来将订购信息提交给Warehouse时,该用例开始。
3.客户可以选择在线订购计算机,或者也可以要求销售人员在定单真正发出之前与自己联系,解释定单的细节、协商价格等。
4.要发出定单,客户必须填写在线表格关于运送和发票地址以及付款细节(信用卡或支票)。
5.在客户定单输入到系统之后,销售人员发送电子请求给仓库,附上所订购的配置的细节。
6.事务的细节,包括定单号和客户账号,要e-mail给客户,使得客户可以在线查看定单的状态。
参与者:
Customer
前提条件:
Customer点击一个因特网浏览器进入计算机制造厂商的定单输入Web页面,该页面显示已配置计算机及其价格的详细情况。
当Customer在定单信息已经显示在屏幕上时选择Continue(或相似命名的)功能键来确定订购所配置的计算机时,该用例开始。
主流:
系统请求Customer输入购买细节,包括销售人员的名字(如果知道的话)、运送信息(客户的名字和地址)、发票细节(如果与运送地址不同的话)、付款方法(信用卡或支票)以及任何其他注释。
SelfConfigurationWindow类调用此方
法从Component类中得到计算机自选部件的
详细信息。
基于JAVA的网络购物数据库系统设计

息是否符 合要 求 ,直 到所 有信息均 正确 无误 ,系统 将该 用户注 册
较 ,给 出结 果。
2 网络数据库 需求分析
网上 的购 物 系统 的主 要对 象是用户 ,所 以必须 建立用 户表 , 包括 用户 的基本 信息情 况 :用户 的主要 活动室 针对 商品购 买 的 , 所 以必须 建立商 品信息 表 ;用户对 商品 的购买 ,选择 所需 要的商 品 ,首 先得 对商 品进行 搜 索 ,所 以我们 必须对 商品进 行 分类 ,进 行 大类和 小类 的划分 ,建立 商品类 别表和 商品 类别细 分表 ;最后
信 息 写入会 员表 lue并提 示用 户注册成 功 ,用户 登陆后 ,就可  ̄ sr P 以进行 有效 的购 物 了。
4 用户登录 . 2
1 系统 开发的 目标和 意义
现在流 行 的网上购 物系统 不仅 要有漂 亮的 网页 ,更要有严 谨 的规划 ,注重 每一 个细小 的环节 。这样 才 能使得在 电子交 易时避 免不必要错误 发生 。我 们将使 用H ML S 等技术 来编辑 网页 , T 、J P 并运用J B 技术把数 据库和动 态网页相 关联 。传统 的管理信 息系 DC 统信息 获取 方法 是 由专业 文字录 入人 员将信 息输入 到管理 系统 的 数据库 中, 方法在数 据量不 大时有很 多的应 用场合 。 当数据 量 这种 比较 大. 有较 强 的专 业性时, 入的费用和 出错 的可能性都相 应 并且 录 上升。 本平 台利用现 在 比较 广泛 的J P MyS 数据 库 的架构 实现 S + QL 的,此系统分为前台管理和后台管理。前台管理是友好的操作界 面 ,供用 户浏览 、查询 使用 。包括 :浏 览商 品、查询 商 品、订购 商 品、购 物车 、用 户维 护等 功能 ;后 台管理是 提供 给管理 员 的 , 其 中包括 :商 品管理 、用户 管理等 。使 管理 员从繁 琐 的手 工操作 中解脱 出来 ,并提 高了办公效率
网上购物系统——概要设计说明书

网上购物系统——概要设计说明书网上购物系统——概要设计说明书网上购物系统概要设计说明书拟制人________许威________ 审核人_ 宋金德袁浩王朝阳_ 批准人____ _____________ 1.引言1.1.编写目的编写此需求分析报告,实现商场、中小企业或个人在互联网上进行新产品展示,网上通信留言功能,重点实现网上商品的查找、在线购买功能。
实现普通用户只能浏览,注册用户可以在线定购,后台管理人员可以进行产品上传更新、注册用户的管理等功能。
1.2.项目背景软件名称:网上购物系统开发者:宋金德,袁浩,王朝阳,许威项目简介:本系统主要实现网上产品展示与在线定购及人员的管理,一、不同身份有不同的权限功能(管理人员、注册用户、游客)二、在线产品展示(分页显示)三、在线定购四、后台管理(用户管理、商品的管理)1.3 参考资料[1] 谭浩强《动态网页制作ASP》北京电子工业出版社. 2001 [2] 彭万波《网页设计精彩实例》北京电子工业出版社.2002 [3] 袁玫等《网络数据库应用教程》北京人民邮电出版社.2002[4] 潘英伟《网站开发实用手册》中国广播电视出版社.2001[5] 樊健平《ASP高级编程及其项目应用开发》中国水利水电出版社.2003 [6] 许卫林《VBScript+ASP动态网页制作》中国电力出版社.2002 [7] 金旭亮《网站建设教程》北京高等教育出版社.2002 [8] 张海潘《软件工程导轮》清华大学出版社.2005 [9] 石志国《ASP精解案例教程》清华大学出版社.2004 [10] 汪晓平、钟军《ASP网络开发技术(第二版)》人民邮电出版社.2003. 1.4.问题陈述对用户提供的服务有:l 在线产品展示2 在线查找功能3 在线下订单。
2.任务概述2.1.需求概述根据实际情况,把商品分类,提供商品查找,订单查询,商品管理,订单管理,系统管理等小模块合并成一个可执行的软件系统模型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、概述1.1需求背景伴着电子时代的迅猛发展和人民物质生活的水平的提高,越来越多的电子购物浪潮也汹涌而来。
我们容身在这个信息化的大时代,网购也就成了许多人生活中必不可少的一部分,足不出户的便捷式购物与传统的购物方式大相径庭,人们在享受到方便、实惠的同时也不必担忧安全的问题,既方便了自身也推动着国家经济的发展。
电子商务网络购物平台,无疑是这个时代的进步。
1.2编写目的数据库设计说明书是数据库设计的必要部分,对设计中的数据库的所有标识、逻辑结构和物理结构作出具体的设计规定。
本数据库的设计说明书编写的目的是对网上购物系统设计的说明,明确系统中的各项功能与非功能的需求,从而做出系统的数据流图以及实体联系图。
作为系统的基准文档,为以后的开发和维护提供依据。
1.3软件定义Myeclipse 10.0:一个非常优秀的用于开发Java、J2EE的Eclipse插件集合,Myeclipse功能非常强大,支持也十分广泛,尤其对各种开源产品的支持也不错。
Apache Tomcat 6.0:是一个开放源代码、运行servlet和JSP Web应用软件容器。
Microsoft SQL Server 2005:Structured Query Language1.4开发环境本电子商务网络购物平台的开发环境是Windows 7、Myeclipse10.0、Apache Tomcat6.0,数据库环境是Microsoft SQL Server 2005。
二、需求分析2.1问题陈述设计网络购物系统的数据库。
2.1需完成的功能客户功能:(1) 游客可以查看商品信息,浏览网站信息,经过注册可以成为注册客户。
(2) 注册客户:注册、客户信息查看和修改。
客户登录、确认客户信息,显示客户信息。
商品信息浏览、购物车管理、商品查找、订单查询以及商品评论。
结账、确认订单、订单状态查询、历史订单查询。
商家功能:商品的增删改。
订单处理、订单配送。
客户注册后,登录到电子商务网站,进入购物流程。
客户在浏览所有商品信息后,可以查看每个商品的详细信息,选择购买或加入购物车,购物车内可以随意增删商品,修改商品数量,并同时统计购物车内商品总额。
客户确认购物车内的商品,选中购买,即可生成订单。
可以查看订单状态,“0表示”商品未发出,“1”表示商品已发出。
客户分为普通客户和VIP客户,依据购买商品的金额和数量,自动升级。
不同的VIP等级享有不同的折扣。
2.1数据流图网络购物系统总数据流图如下图1:网络购物系统总数据流图2.1数据字典UserID 客户ID BigInt Not null 主键UserName 客户名Varchar(30) Not null RealName 客户真实姓名Varchar(30) Not null UserPassword 客户密码Varchar(30) Not nullEmail 客户邮箱Varchar(30) Not nullPhone 联系电话Varchar(30) Not nullID 身份证号Varchar(30) Not nullQuestion 密码问题Varchar(30) NullResult 答案Varchar(30) NullRegTime 注册时间Datetime Not nullGradeID 会员等级BigInt Not null AddressID 地址Int Not null表1:客户表字段信息GoodsID 商品号BigInt Not null 主键GName 商品名称Varchar(30) Not nullGPrice 商品价格Smallmoney Not nullGTypeID 商品类别BigInt Not nullGIntro 商品描述Varchar(200) NullGImage 商品图片路径Varchar(100) NullGCount 商品计数Int Not nullGSail 商品销量BigInt Not nullGWeight 商品重量BigInt Null GDateTime 上架日期Datetime Not nullGSize 商品规格Varchar(100) Not null表2:商品表字段信息TypeID 商品类别号BigInt Not null 主键TypeNam类别描述Varchar(50) Not nulle表3:商品类别表字段信息ProducerID 商家号BigInt Not null 主键ProName 商家名Varchar(30) Not null ProAddress 商家地址Varchar(50) Not null ProPhone 商家电话Varchar(30) Not null表4:商家表字段信息订单表数据字典:SubID 订单号Varchar(30) Not null 主键UserID 客户号BigInt Not nullGoodsID 商品号BigInt Not null RAddress 送货地址Varchar(50) Not nullSpDate 订购日期Datetime Not nullSpCount 订购数量Int Not nullGPrice 单价Smallmoney Not null ReceiptID 发票号BigInt Not nullSpPrice 订单金额Money Not null SendDate 发货时间Datetime Not nullPayment 付款方式Varchar(20) Not null SendType 运送方式Varchar(20) Not null SendPrice 邮费Smallmoney Not nullState 订单状态Int Not null表5:订单表字段信息CarID 购物车ID BigInt Not null 主键UserID 客户ID Varchar(10) Not nullGoodsID 商品ID Varchar(20) Not null OrderTime 订购时间Datetime Not nullOrderCount 订购数量Int Not null GoodsPrice 单价Smallmoney Not null UserCheck 用户确认Int Not null OrderPrice 购物总额Money Not null表6:购物车表字段信息GradeID 会员等级ID BigInt Not null 主键等级分类Int Not null GradeType表7:会员等级表字段信息CommentID 评论ID BigInt Not null 主键Content1 内容Varchar(200) Not nullTitle 标题Varchar(20) Not nullUserID 客户ID BigInt Not null ProducerID 商家ID BigInt Not null CommentTime 评论时间Datetime Not null表8:评论表字段信息SupplyID 供应ID BigInt Not null 主键RealStock 实际存货Int Not nullMinStock 最低存货Int Not null GoodsID 商品ID BigInt Not null ProducerID 商家ID BigInt Not null表9:供应表字段信息ReceiptID 发票ID BigInt Not null 主键SubID 订单号BigInt Not null表10:发票表字段信息AddressID 地址ID Int Not null 主键Address 地址Varchar(50) Not nullUserID 客户ID BigInt Not null表11:发票表字段信息三、数据库概念结构设计3.1 E-R模型图的设计(1)寻找实体集客户VIP会员商品商家商品类别地址(2)寻找实体间联系客户与商品之间多对多联系:订单,评论1>客户与VIP会员之间多对一联系:属于2>会员等级与订单细节一对多:参照13>订单细节与商品多对一:参照24>订单细节预订单多对一:组成客户与商品之间一对多联系:购物车1>客户与购物车一对一:拥有2>购物车与商品一对多:存放3>购物车与订单细节一对多:结算商家与商品之间多对多联系:供应商品与商品类别之间多对一联系:分类客户与地址之间一对多联系:所在(3)确定实体的属性客户:客户ID 客户名客户真实姓名客户密码客户邮箱联系电话身份证号密码问题答案注册时间会员等级IDVIP会员:会员等级ID 等级分类商品:商品号商品名称商品价格商品类别商品描述商品图片路径商品计数商品销量商品重量上架日期商品规格商家:商家号商家名商家地址商家电话地址:地址号地址名称商品类别:商品类别号类别描述(3)确定联系的属性订单:订单号客户号商品号送货地址订购日期订购数量单价发票号订单金额发货时间付款方式运送方式邮费订单状态购物车:购物车ID 客户ID 商品ID 订购时间订购数量单价用户确认供应:供应ID实际存货最低存货商品ID 商家ID分类:商品号商品分类客户类型属于:客户号客户类型评论:评论ID 内容标题客户ID 商家ID 评论时间客户地址所在:客户号客户地址(4)画出E-R图图2:客户与商品实体间的详细联系E-R图图3:网络购物系统E-R图四、数据库逻辑结构设计4.1 E-R模型图转化为关系表(1)实体转化为单独的一张表客户VIP会员商品商家商品类别地址(2)多对多联系转化为单独的一张关系表购物车订单评论供应(3)其他一对多的联系通过在多的一方增加属性来实现客户表与会员等级:在客户表中增加会员等级ID商品与商品类型:在商品中增加类型号4.2 描述基本表的关系E-R图转化为关系模型,关系的码用下划线标出。
此为客户实体对应的关系模式:客户(客户号,密码,会员等级号,…)此为VIP会员实体对应的关系模式:VIP会员(会员等级号,等级类型)此为商品实体对应的关系模式:商品(商品号,描述,商品分类,商品名,…)此为商家实体对应的关系模式:商家(商家号,商家名,商家电话,…)此为商品类别实体对应的关系模式:商品类别(商品类别号,商品类别)此为联系“购物车”所对应的关系模式:购物车(购物车号,客户号,商品号,…)此为联系“订单”所对应的关系模式:订单(订单号,客户号,商品号,…)此为联系“评论”所对应的关系模式:评论(评论号,内容,客户号,…)此为联系“供应”所对应的关系模式:供应(供应号,实际存货,最少存货,…)4.3 所有关系表达到BCNF范式4.4 定义视图(1)订单表中只关联客户、商品的ID,而最终客户核对的应该是包含客户真实姓名在内的客户必要信息以及包含商品名称的商品信息,分别建立两个视图:1>参照商品的订单细节create view View_goodsasselect * from tb_goodswhere GoodsID='201201'2>参照客户信息的订单细节create view View_userasselect * from tb_userwhere UserID='201'4.5 定义索引在经常查询的列上(主键)建立聚簇索引如:在商品信息表上建立索引create cluster index Index_ GoodsIDontb_goods(GoodsID)4.6 定义触发器(1)注册客户自动升级VIP--创建触发器tr_grade,实现注册客户VIP自动升级Create Trigger tr_grade ON tb_subFor updateAsIF Update(SpPrice)BeginDeclare @price moneySelect @price=SpPrice From insertedIf @price>=30000Update tb_user set GradeID=4ElseIf @price>=20000Update tb_user set GradeID=3ElseIf @price>=10000Update tb_user set GradeID=2ElseIf @price>=0Update tb_user set GradeID=1End(2)更新订单,订单金额是商品价格总和--创建一个更新触发器,及时更新订单Create Trigger tr_update On tb_sub For Update AsIf Update (SpCount) Or Update (GPrice)BeginDeclare @orderNo Bigint,@productNo BigintDeclare cur_order Cursor ForSelect SubID,GoodsID From DeletedOpen cur_orderBegin TransactionFetch cur_order into @orderNo,@productNoWhile (@@fetch_status=0)BeginUpdate tb_subSettb_sub.SpPrice=tb_sub.SpPrice-D.SpCount*D.GPrice+I.SpCount*I.GPriceFrom inserted I,deleted DWhere tb_sub.subID=I.subID And I.subID=D.subIDAnd tb_sub.subID=@orderNo And I.GoodsID=D.GoodsIDAnd I.GoodsID=@productNoFetch cur_order into @orderNo,@productNo EndCommit tranClose cur_orderDeallocate cur_orderEnd(3)更新购物车,选中商品更新商品总额--更新购物车,选中商品更新商品总额Create Trigger tr_car On tb_car For Update AsIf Update (OrderCount) Or Update (GoodsPrice)BeginDeclare @CarID Bigint,@GoodsID BigintDeclare cur_car Cursor ForSelect CarID,GoodsID From DeletedOpen cur_carBegin TransactionFetch cur_car into @CarID,@GoodsIDWhile (@@fetch_status=0)BeginUpdate tb_carSettb_car.OrderPrice=tb_car.OrderPrice-D.OrderCount*D.GoodsPrice+I.OrderCount*I.GoodsPriceFrom inserted I,deleted DWhere tb_car.CarID=I.CarID And I.CarID=D.CarIDAnd tb_car.CarID=@CarID And I.GoodsID=D.GoodsIDAnd I.GoodsID=@GoodsIDFetch cur_car into @CarID,@GoodsIDEndCommit tranClose cur_carDeallocate cur_carEnd(4)创建触发器只允许注册会员在网上下订单--创建一个触发器tr_sub,只允许注册会员在网上提交订单Create Trigger tr_sub on tb_subFor insertAsIf Not Exists(select * From insertedWhere UserID in(select tb_erID from tb_user)) BeginRaiserror('提交订单前请先注册!',16,1)Rollback TransactionEnd4.7 定义约束(1)确定实体完整性约束主键约束(2)参照完整性约束--为tb_user表添加参照性约束alter table tb_userwith nocheckadd constraint fk_user foreign key(GradeID) references tb_grade(GradeID)--为tb_goods表添加参照性约束alter table tb_goodswith nocheckadd constraint fk_goods foreign key(GTypeID) references tb_type(TypeID)--为tb_address增加外键约束alter table tb_addresswith nocheckadd constraint fk_address foreign key(UserID) references tb_user(UserID)(3)用户自定义完整性约束1>客户表密码不能少于6位,且不能与客户号相同Alter table tb_userAdd constraint Ck_passCheck (6<=len(Userpassword) and Userpassword<>UserID)2>电子信箱格式为***********格式Alter table tb_userAdd constraint Ck_emailCheck (Email like '%@qq.%')3>订单号共12位,前8位是订货日期,后4位是流水号,格式为“2013 12150001”3>订货时间早于发货时间alter table tb_subwith nocheckadd constraint ck_sub check(SpDate<SendDate)5>发票号码唯一alter table tb_receiptadd constraint un_receipt unique(ReceiptID)6>订单状态取值为“0”或“1”alter table tb_subwith nocheckadd constraint ck_state check(State in (0,1))7>身份证号必须为16或者18位Alter table tb_userAdd constraint Ck_idCheck (ID in (16,18))8>……五、结束语一个软件最重要的不是前台页面,而是软件的生存期,即实用性的长远,而后者则主要取决于后台的维护。