网上购物系统 数据库设计
学院:计算机与信息工程学院 班级:09级2班
指导老师:xxxxxxxxxxxxxx 小组成员:xxxxxxxx
时间:2012年5月13日
1.背景
网上商城类似于现实世界当中的商店,差别是利用电子商务的各种手段,达成从买到卖的过程的虚拟商店,从而减少中间环节,消除运输成本和代理中间的差价,造就对普通消费,和加大市场流通带来巨大的发展空间。尽能的还消费者以利益,带动公司发展和企业腾飞,引导国民经济稳定快速发展,推动国内生产总值。在现如今的WEB2.0时代,新的产业在不断衍生,电子商务的兴起,为互联网创业者提供了更多的机会。
本项目基于网上商城在现阶段及未来的发展而开发的电子商务应用,为消费者提供更好更快捷的服务,同时获得利润。 2.参考项目
项目的设计离不开原有的成功的项目以及别的公司的案例,例如淘宝网、亚马逊、当当网以及新发展起来的麦考林、凡客诚品等等,虽然经营的商品及模式不同,但是在技术上有很多的相同点。特别是在数据库的设计中,像用户信息表的设计,商品类别的设计,订单的设计等等,字段都是有很大程度上相同的,所以在实际的项目设计中可以参考这些成功的电子商务网站。 3.数据库设计
数据库设计(sql 2005)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。
数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建议中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。 4.数据库设计的重要性
良好的数据库设计对于一个高性能的应用程序非常重要,就像一个空气动力装置对于一辆赛车的重要性一样。如果一辆汽车没有平滑的曲线,将会产生阻力从而变慢。关系没有经过优化,数据库无法尽可能高效地运行。应该把数据库的关系和性能看作是规范化的一部分。
除了性能以外的问题,就是维护的问题了,数据库应该易于维护。这包括只存储数量有限的(如果有的话)重复性数据。如果有很多的重复性数据,并且这些数据的一个实例发生一次改变(例如,一个名字的改变),这个改变必须对所有的其他的数据都进行。为了避免重复,并且增强维护数据的能力,我们可以创建可能的值的一
个表并使用一个键来引用该值。在这种方式中,如果值改变了名字,这个改变只在主表中发生一次,所有的其他表的引用都保持不变。
1.数据库概念设计 1.1 数据库设计规范
数据库命名规则:db_数据库名称,每个英文单词第一个字母大写; 表命名规则:tb_表名称,每个英文单词第一个字母大写; 字段命名规则:每个英文单词第一个字母大写; 字段时间格式:所有时间格式采用2012-5-12的形式
1.1.1 数据库逻辑设计
数据路设计图
1.1.2 数据字典
系统管理员表(tb_Admin):管理系统管理员账号和密码的表,主要属性有:用户名和密码。系统管理员根据用户名密码登陆后台系统。
系统管理员表
表名:tb_Admin 字段名 AdminID Password 数据类型 varchar varchar 长度 32 32 主外键 主键 无 字段说明 管理员ID 管理员密码 备注 非空 非空 会员区域表(tb_Area):网站会员购物地点,主要属性有:AreaID,AreaKM。 系统可以根据会员区域表收取会员需要运输商品的运输费。
送货路程表
表名:tb_Area 字段名 AreaID 数据类型 varchar 长度 50 主外键 主键 字段说明 区域ID 备注 非空 AreaKM varchar 50 无 送货距离 无 会员购物信息表(tb_BuyInfo):会员购物信息统计表,主要属性有:BuyID, GoodsID,Num,SumPrice,MemberID。
会员购物信息表 表名:tb_BuyInfo 字段名 BuyID GoodsID Num OrderID SumPrice MemberID 数据类型 varchar varchar int varchar varchar varchar 长度 50 50 32 50 50 50 主外键 主键 无 无 无 无 外键 字段说明 购物单号 商品ID 商品数量 订单号 总价格 会员ID 备注 非空 无 无 无 无 无 商品类别表(tb_Class):商品类别显示表,主要属性有:ClassID,CategoryUrl。 主要管理所有商品种类及其简易图标。
商品类别表
表名:tb_Class 字段名 ClassID CategoryUrl 数据类型 varchar varchar 长度 50 50 主外键 主键 无 字段说明 商品种类ID 商品标识图标 备注 非空 无 商品信息表(tb_GoodsInfo):商品信息表主要负责存储商品名称,商品类别,商品图标,商品图片,商品价格,商品重量等信息。主要属性有:GoodsID,ClassID,GoodsIntroduce,GoodsBrand,GoodsUnit,GoodsWeight,GoodsUrl,MarketPrice,MemberPrice,Isrefinement,IsHot,AddDate,IsDiscount。
商品信息表
表名:tb_GoodsInfo 字段名 GoodsID ClassID GoodsIntroduce GoodsBrand GoodsUnit GoodsWeight GoodsUrl MarketPrice MemberPrice Isrefinement IsHot AddDate IsDiscount 数据类型 varchar varchar Text varchar varchar float varchar float float bool bool datetime bool 长度 50 50 250 50 50 16 50 16 16 1 1 32 1 主外键 主键 外键 无 无 无 无 无 无 无 无 无 无 无 字段说明 商品名称 商品类别 商品介绍 商品品牌 商品计数单位 商品重量 商品图片地址 商品市场价格 商品会员价格 是否精品 是否热销 上传日期 是否特价 备注 非空 非空 无 无 无 无 无 无 无 无 无 无 无 商品图片表(tb_Image):商品图片表,主要用来存储商品的图片,主要属性有:ImageID,ImageName,ImageUrl。
商品图片表
表名:tb_Image 字段名 ImageID ImageName ImageUrl 数据类型 varchar varchar varchar 长度 50 50 50 主外键 主键 无 无 字段说明 商品图片ID 商品图片名称 商品图片地址 备注 非空 无 无 会员信息表(tb_Member):会员信息表,主要用来存储会员的一些基本信息,如会员ID,会员性别,会员密码,会员真实名字,会员联系方式(电话号码。E_mail,所在城市,家庭住址,邮
政编码等),现有RMB,上一次登陆时间。主要属性有:MemberID,Sex,Password,TrueName,Phonecode,Emails,City,Address,PostCode,AdvancePayment,LoadDate。
会员信息表
表名:tb_Members 字段名 MemberID Sex Password TrueName Phonecode Emails City Address PostCode AdvancePayment LoadDate 数据类型 varchar bit varchar varchar varchar varchar varchar varchar varchar varchar datetime 长度 50 1 50 50 50 50 50 200 10 50 32 主外键 字段说明 主键 无 无 无 无 无 无 无 无 无 无 会员ID 会员性别 会员密码 会员真实名字 电话号码 Email 所在城市 地址 邮编号码 现有存款 上次登录时间 备注 非空 无 无 无 无 无 无 无 无 无 无 订单信息表(tb_OrderInfo):订单信息表主要用来存储会员每次订单信息,主要属性有:OrderID,OrderDate,GoodsFee,TotalPrice,ShipFee,ShipType,PayType,MemberID,ReceiverName,ReceiverPhone,IsConfirm,IsPayment,IsConsignment,IsPigeonhole,ReceiverPostCode,ReceiverAddress,ReceiverEmails。
订单信息表
表名:tb_OrderInfo 字段名 OrderID 数据类型 varchar 长度 50 主外键 字段说明 主键 订单ID 备注 非空 OrderDate GoodsFee TotalPrice ShipFee ShipType PayType MemberID ReceiverName ReceiverPhone IsConfirm IsPayment IsConsignment IsPigeonhole ReceiverPostCode ReceiverAddress ReceiverEmails Datetime varchar varchar varchar varchar varchar varchar varchar varchar bit bit bit bit Char Varchar Varchar 32 50 50 50 50 50 200 50 50 1 1 1 1 10 200 50 无 无 无 无 无 无 无 无 无 无 无 无 无 无 无 无 订单提交日期 商品价格 商品总费用 运输费 运输方式 付款方式 会员ID 接收人名字 接收人电话 是否确认 是否付款 是否托付商品 是否托运 接收人邮编 接收人名地址 接收人邮件 无 无 无 无 无 无 无 无 无 无 无 无 无 无 无 无 付款方式表(tb_PayType):付款方式表主要存储会员的付款方式,主要属性有:PayID,PayWay。
付款方式表
表名:tb_PayType 字段名 PayID PayWay 数据类型 varchar varchar 长度 50 50 主外键 主键 无 字段说明 付款ID 付款方式 备注 非空 无 邮寄方式表(tb_ShipType):邮寄方式表,主要负责存储商品发送的方式。比如:邮寄,快递。主要属性有:ShipID,ShipWay,ShipFee,ClassID。
商品方式表
表名:tb_PayType 字段名 ShipID ShipWay ShipFee ClassID 数据类型 varchar varchar varchar varchar 长度 50 50 50 50 主外键 主键 无 无 外键 字段说明 邮寄ID 邮寄方式 邮寄费用 商品类别 备注 非空 无 非空 非空 购物车信息表(tb_ShopCart):购物车信息表,主要负责存储会员临时性添加的一些商品,主要属性有:CartID,GoodsID,Num,MemberPrice,MarketPrice,MemberID,GoodsWeight。
购物车信息表
表名:tb_ ShopCart 字段名 CartID GoodsID Num MemberPrice MarketPrice MemberID GoodsWeight 总结:
通过本次实训,我们对数据库理论知识有了更深一层的认识。也让我们对数据库的创建过程更加透彻的了解,我们越来越感觉到基础的重要性,这不公来源于我们在第一阶段的辛苦,更加体会深刻的是我们在后面的实训中,不断发现不足,不断的更改以前一阶段的相关内容,同时,由于设备问题,有时候导致数据丢失。所以我们不断的努力,努力做到自己的想象的成果。
数据类型 varchar varchar int float float varchar float 长度 50 50 50 50 16 50 16 主外键 主键 外键 无 无 无 外键 无 字段说明 邮寄ID 邮寄方式 购买数量 会员价格 市场价格 会员ID 商品重量 备注 非空 非空 非空 非空 非空 非空 非空