网上商城数据库分析.docx
- 文档编号:8526217
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:15
- 大小:212.87KB
网上商城数据库分析.docx
《网上商城数据库分析.docx》由会员分享,可在线阅读,更多相关《网上商城数据库分析.docx(15页珍藏版)》请在冰豆网上搜索。
网上商城数据库分析
网上商城数据库分析,设计
1.网上商城
网上商城类似于现实世界当中的商店,差别是利用电子商务的各种手段,达成从买到卖的过程的虚拟商店,从而减少中间环节,消除运输成本和代理中间的差价,造就对普通消费,和加大市场流通带来巨大的发展空间。
尽能的还消费者以利益,带动公司发展和企业腾飞,引导国民经济稳定快速发展,推动国内生产总值。
在现如今的WEB2.0时代,新的产业在不断衍生,电子商务的兴起,为互联网创业者提供了更多的机会。
本项目基于网上商城在现阶段及未来的发展而开发的电子商务应用,为消费者提供更好更快捷的服务,同时获得利润。
2.参考项目
项目的设计离不开原有的成功的项目以及别的公司的案例,例如淘宝网、亚马逊、当当网以及新发展起来的麦考林、凡客诚品等等,虽然经营的商品及模式不同,但是在技术上有很多的相同点。
特别是在数据库的设计中,像用户信息表的设计,商品类别的设计,订单的设计等等,字段都是有很大程度上相同的,所以在实际的项目设计中可以参考这些成功的电子商务网站。
3.数据库设计
数据库设计(DatabaseDesign)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。
数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建议中的核心技术。
由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。
4.数据库设计的重要性
良好的数据库设计对于一个高性能的应用程序非常重要,就像一个空气动力装置对于一辆赛车的重要性一样。
如果一辆汽车没有平滑的曲线,将会产生阻力从而变慢。
关系没有经过优化,数据库无法尽可能高效地运行。
应该把数据库的关系和性能看作是规范化的一部分。
除了性能以外的问题,就是维护的问题了,数据库应该易于维护。
这包括只存储数量有限的(如果有的话)重复性数据。
如果有很多的重复性数据,并且这些数据的一个实例发生一次改变(例如,一个名字的改变),这个改变必须对所有的其他的数据都进行。
为了避免重复,并且增强维护数据的能力,我们可以创建可能的值的一个表并使用一个键来引用该值。
在这种方式中,如果值改变了名字,这个改变只在主表中发生一次,所有的其他表的引用都保持不变。
提示:
规范化指的是为了尽量避免重复性和不一致性而组织数据结构的过程。
例如,假设你负责维护一个学生数据库以及他们所注册的课程。
如果这些学生中的35个在同一个课堂中,让我们将这门课叫做AdvancedMath(高等数学),课程的名字将会在表中出现35次。
现在,如果老师决定把这门课的名字改为MathematicsIV,我们必须修改35条记录以反映出新的课程名。
如果数据库设计为课程名出现在一个表中,只有课程ID号码和学生记录一起存储,那么要更改课程名称,我们就只需要改变一条记录而不是35条记录。
一个规划和设计良好的数据库的优点是众多的,它也证实了这样一个道理,前期做的工作越多,后面所要做的就越少。
在使用数据库的应用程序公开发布之后,还要对数据库进行重新设计,这是最糟糕的,然而,这确实会发生,并且代价高昂。
因此,在开始编写一个应用程序的代码之前,请花大量的时间来设计你的数据库。
在本章其余的部分中,我们将学习很多有关关系和规范化的内容,这是设计难题中最重要的两部分。
5.说明
在一个完整的软件项目中,应该对需求分析,数据库设计,网页设计,JavaBean的设计等都是要精细考虑到的,由于时间及人力的关系,本次设计主要考虑数据库的设计,因为数据库设计的比较好,那么项目开发的进度也就比较快,可复用性也高,项目成功的几率就比较大。
6.开发环境
JDK版本:
JDK1.6
Web应用服务器:
Tomcat7.0及以上
数据库:
MySQL5.0及以上
展示层:
Struts2及以上
业务层:
Spring2.5及以上
持久层:
Hibernate3.0及以上
7.数据库表
在MySQLWorkbench中设计总的数据库表
7.1用户注册信息表(user)
User
字段名
字段类型
说明
id
int
主键
username
varchar
用户名
password
varchar
密码
password2
varchar
确认密码
varchar
邮件
phone
varchar
电话
图片管理的表
商品的详细信息表每个表里面都有不同的尺码什么的!
7.2商品信息表(product)
product
字段名
字段类型
说明
id
int
主键
name
varchar
商品名
desc
varchar
描述
normalprice
double
正常价格
memberprice
double
会员价格
pdate
date
上柜日期
categoryID
varchar
类别,引用category表的ID
7.3商品信息类别表(category)
category
字段名
字段类型
说明
id
int
主键
name
varchar
商品名
desc
varchar
描述
7.4订单表(salesorder)
salesorder
字段名
字段类型
说明
id
int
主键
userid
int
参照用户id
addr
varchar
送货地址
salesitem
int
参照salesitem的id
odate
date
下单时间
7.4订单详细表(salesitem)
salesitem
字段名
字段类型
说明
id
int
主键
productid
int
参照product的id
unitprice
double
单价
pcount
int
数量
orderid
int
参照订单表的id
7.6购物车表(shoppingcart)
shoppingcart
字段名
字段类型
说明
id
int
主键
userid
int
参照user的id
cartitem
varchar
参照cartitem的id
7.7购物车明细表(cartitem)
cartitem
字段名
字段类型
说明
id
int
主键
productid
int
参照product的id
utilprice
double
单价
pcount
int
数量
7.8管理员表(admin)
admin
字段名
字段类型
说明
id
int
主键
username
varchar
管理员姓名
password
varchar
密码
level
varchar
级别
地址管理表
8.0SQL语句
SET@OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS,UNIQUE_CHECKS=0;
SET@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS=0;
SET@OLD_SQL_MODE=@@SQL_MODE,SQL_MODE='TRADITIONAL';
CREATESCHEMAIFNOTEXISTS`mydb`DEFAULTCHARACTERSETlatin1COLLATElatin1_swedish_ci;
CREATESCHEMAIFNOTEXISTS`new_schema1`;
USE`mydb`;
-------------------------------------------------------
--Table`mydb`.`user`
-------------------------------------------------------
CREATETABLEIFNOTEXISTS`mydb`.`user`(
`id`INTNOTNULLAUTO_INCREMENT,
`username`VARCHAR(45)NOTNULLCOMMENT'用户名',
`password`VARCHAR(45)NOTNULLCOMMENT'密码',
`password2`VARCHAR(45)NOTNULLCOMMENT'确认密码',
`email`VARCHAR(45)NOTNULLCOMMENT'电子邮件',
`phone`VARCHAR(45)NOTNULLCOMMENT'电话',
`shoppingcart_id1`INTNOTNULL,
PRIMARYKEY(`id`,`username`,`shoppingcart_id1`))
ENGINE=InnoDB
COMMENT='用户注册表';
-------------------------------------------------------
--Table`mydb`.`category`
-------------------------------------------------------
CREATETABLEIFNOTEXISTS`mydb`.`category`(
`id`INTNOTNULLAUTO_INCREMENTCOMMENT'主键',
`name`VARCHAR(45)NOTNULLCOMMENT'商品名字',
`desc`VARCHAR(200)NOTNULLCOMMENT'描述',
PRIMARYKEY(`id`))
ENGINE=InnoDB,
COMMENT='商品类别信息表';
-------------------------------------------------------
--Table`mydb`.`product`
-------------------------------------------------------
CREATETABLEIFNOTEXISTS`mydb`.`product`(
`id`INTNOTNULLAUTO_INCREMENTCOMMENT'主键',
`name`VARCHAR(45)NOTNULLCOMMENT'产品名字',
`desc`VARCHAR(200)NOTNULLCOMMENT'产品描述',
`normalprice`DOUBLENOTNULLCOMMENT'正常价格',
`memberprice`DOUBLENOTNULLCOMMENT'会员价格',
`pdate`DATENOTNULLCOMMENT'上柜日期',
`category`VARCHAR(45)NOTNULLCOMMENT'类别ID',
PRIMARYKEY(`id`),
INDEX`category`(),
CONSTRAINT`category`
FOREIGNKEY()
REFERENCES`mydb`.`category`()
ONDELETENOACTION
ONUPDATENOACTION)
ENGINE=InnoDB,
COMMENT='产品信息表';
-------------------------------------------------------
--Table`mydb`.`salesorder`
-------------------------------------------------------
CREATETABLEIFNOTEXISTS`mydb`.`salesorder`(
`id`INTNOTNULLAUTO_INCREMENTCOMMENT'主键',
`userid`INTNOTNULLCOMMENT'用户ID',
`addr`VARCHAR(45)NOTNULLCOMMENT'配送地址',
`salesitem`VARCHAR(45)NOTNULLCOMMENT'订单明细',
`odate`DATENOTNULLCOMMENT'下单日期',
PRIMARYKEY(`id`))
ENGINE=InnoDB,
COMMENT='订单表';
-------------------------------------------------------
--Table`mydb`.`salesitem`
-------------------------------------------------------
CREATETABLEIFNOTEXISTS`mydb`.`salesitem`(
`id`INTNOTNULLAUTO_INCREMENTCOMMENT'主键',
`productid`INTNOTNULLCOMMENT'产品ID',
`unitprice`DOUBLENOTNULLCOMMENT'单价',
`pcount`INTNOTNULLCOMMENT'数量',
`orderid`INTNOTNULLCOMMENT'订单ID引用salesorder',
PRIMARYKEY(`id`),
INDEX`orderid`(`orderid`ASC),
CONSTRAINT`orderid`
FOREIGNKEY(`orderid`)
REFERENCES`mydb`.`salesorder`(`id`)
ONDELETENOACTION
ONUPDATENOACTION)
ENGINE=InnoDB,
COMMENT='订单明细表';
-------------------------------------------------------
--Table`mydb`.`cartitem`
-------------------------------------------------------
CREATETABLEIFNOTEXISTS`mydb`.`cartitem`(
`id`INTNOTNULLAUTO_INCREMENT,
`productid`INTNOTNULL,
`utilprice`DOUBLENOTNULL,
`pcount`INTNOTNULL,
PRIMARYKEY(`id`),
INDEX`productid`(`productid`ASC),
CONSTRAINT`productid`
FOREIGNKEY(`productid`)
REFERENCES`mydb`.`product`(`id`)
ONDELETENOACTION
ONUPDATENOACTION)
ENGINE=InnoDB;
-------------------------------------------------------
--Table`mydb`.`shoppingcart`
-------------------------------------------------------
CREATETABLEIFNOTEXISTS`mydb`.`shoppingcart`(
`id`INTNOTNULLAUTO_INCREMENTCOMMENT'主键',
`userid`INTNOTNULLCOMMENT'用户ID',
`cartitem`VARCHAR(45)NOTNULLCOMMENT'物品信息',
PRIMARYKEY(`id`),
INDEX`userid`(`userid`ASC),
CONSTRAINT`userid`
FOREIGNKEY(`userid`)
REFERENCES`mydb`.`user`(`id`)
ONDELETENOACTION
ONUPDATENOACTION,
CONSTRAINT`cartitem`
FOREIGNKEY()
REFERENCES`mydb`.`cartitem`()
ONDELETENOACTION
ONUPDATENOACTION)
ENGINE=InnoDB,
COMMENT='购物车表';
-------------------------------------------------------
--Table`mydb`.`admin`
-------------------------------------------------------
CREATETABLEIFNOTEXISTS`mydb`.`admin`(
`id`INTNOTNULLAUTO_INCREMENTCOMMENT'主键',
`username`VARCHAR(45)NOTNULLCOMMENT'管理员姓名',
`password`VARCHAR(45)NOTNULLCOMMENT'密码',
`level`VARCHAR(20)NOTNULLCOMMENT'级别',
PRIMARYKEY(`id`))
ENGINE=InnoDB,
COMMENT='管理员信息表';
USE`new_schema1`;
-------------------------------------------------------
--Placeholdertableforview`new_schema1`.`view1`
-------------------------------------------------------
CREATETABLEIFNOTEXISTS`new_schema1`.`view1`(`id`INT);
-------------------------------------------------------
--View`new_schema1`.`view1`
-------------------------------------------------------
DROPTABLEIFEXISTS`new_schema1`.`view1`;
USE`new_schema1`;
;
SETSQL_MODE=@OLD_SQL_MODE;
SETFOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SETUNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上商城 数据库 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)