完整word版网上商城数据库分析word文档良心出品Word文件下载.docx
《完整word版网上商城数据库分析word文档良心出品Word文件下载.docx》由会员分享,可在线阅读,更多相关《完整word版网上商城数据库分析word文档良心出品Word文件下载.docx(16页珍藏版)》请在冰点文库上搜索。
在这种方式中,如果值改变了名字,这个改变只在主表中发生一次,所有的其他表的引用都保持不变。
提示:
规范化指的是为了尽量避免重复性和不一致性而组织数据结构的过程。
例如,假设你负责维护一个学生数据库以及他们所注册的课程。
如果这些学生中的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
密码
password2
确认密码
email
邮件
phone
电话
图片管理的表
商品的详细信息表每个表里面都有不同的尺码什么的!
7.2商品信息表(product)
product
name
商品名
desc
描述
normalprice
double
正常价格
memberprice
会员价格
pdate
date
上柜日期
categoryID
类别,引用category表的ID
7.3商品信息类别表(category)
category
7.4订单表(salesorder)
salesorder
userid
参照用户id
addr
送货地址
salesitem
参照salesitem的id
odate
下单时间
7.4订单详细表(salesitem)
productid
参照product的id
unitprice
单价
pcount
数量
orderid
参照订单表的id
7.6购物车表(shoppingcart)
shoppingcart
参照user的id
cartitem
参照cartitem的id
7.7购物车明细表(cartitem)
utilprice
7.8管理员表(admin)
admin
管理员姓名
level
级别
地址管理表
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,
商品类别信息表'
--Table`mydb`.`product`
CREATETABLEIFNOTEXISTS`mydb`.`product`(
产品名字'
产品描述'
`normalprice`DOUBLENOTNULLCOMMENT'
正常价格'
`memberprice`DOUBLENOTNULLCOMMENT'
会员价格'
`pdate`DATENOTNULLCOMMENT'
上柜日期'
`category`VARCHAR(45)NOTNULLCOMMENT'
类别ID'
PRIMARYKEY(`id`),
INDEX`category`(),
CONSTRAINT`category`
FOREIGNKEY()
REFERENCES`mydb`.`category`()
ONDELETENOACTION
ONUPDATENOACTION)
产品信息表'
--Table`mydb`.`salesorder`
CREATETABLEIFNOTEXISTS`mydb`.`salesorder`(
`userid`INTNOTNULLCOMMENT'
用户ID'
`addr`VARCHAR(45)NOTNULLCOMMENT'
配送地址'
`salesitem`VARCHAR(45)NOTNULLCOMMENT'
订单明细'
`odate`DATENOTNULLCOMMENT'
下单日期'
订单表'
--Table`mydb`.`salesitem`
CREATETABLEIFNOTEXISTS`mydb`.`salesitem`(
`productid`INTNOTNULLCOMMENT'
产品ID'
`unitprice`DOUBLENOTNULLCOMMENT'
单价'
`pcount`INTNOTNULLCOMMENT'
数量'
`orderid`INTNOTNULLCOMMENT'
订单ID引用salesorder'
INDEX`orderid`(`orderid`ASC),
CONSTRAINT`orderid`
FOREIGNKEY(`orderid`)
REFERENCES`mydb`.`salesorder`(`id`)
订单明细表'
--Table`mydb`.`cartitem`
CREATETABLEIFNOTEXISTS`mydb`.`cartitem`(
`productid`INTNOTNULL,
`utilprice`DOUBLENOTNULL,
`pcount`INTNOTNULL,
INDEX`productid`(`productid`ASC),
CONSTRAINT`productid`
FOREIGNKEY(`productid`)
REFERENCES`mydb`.`product`(`id`)
ENGINE=InnoDB;
--Table`mydb`.`shoppingcart`
CREATETABLEIFNOTEXISTS`mydb`.`shoppingcart`(
`cartitem`VARCHAR(45)NOTNULLCOMMENT'
物品信息'
INDEX`userid`(`userid`ASC),
CONSTRAINT`userid`
FOREIGNKEY(`userid`)
REFERENCES`mydb`.`user`(`id`)
ONUPDATENOACTION,
CONSTRAINT`cartitem`
REFERENCES`mydb`.`cartitem`()
购物车表'
--Table`mydb`.`admin`
CREATETABLEIFNOTEXISTS`mydb`.`admin`(
管理员姓名'
`level`VARCHAR(20)NOTNULLCOMMENT'
级别'
管理员信息表'
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;