SSM实战系列之商城系统(前端+后台)《二》数据表结构设计
程序员文章站
2023-12-24 12:40:33
...
SSM实战系列之商城系统(前端+后台)《二》
1. 前言
这是一个电子商城整站的实战项目,包括前端的整体页面和后台管理页面。
从项目需求分析到整站开发的一整套项目开发过程记录。
也是作为本人实习阶段在做Hadoop大数据的同时,巩固一下javaweb的开发经验。
当然,如果你跟着我一起做,那么掌握了这些内容之后,相信是能比较明显地提高你的开发适应能力。
主要开发技术:
Spring +Spring MVC +Mybatis+Bootsrap+MySQL+Eclipse+Maven+Tomcat8 +JDK1.8
具体使用:
Java:Java基础 和 Java中级 的大部分内容
前端:HTML,css,JavaScript,jquery,ajax, Bootstrap
J2EE:tomcat,servlet,jsp,Filter
框架:Spring,Spring MVC,Mybatis
数据库:MySQL
开发工具:Eclipse,Maven
2.数据库表结构设计
在需求分析结束之后,需要开始进行数据库表结构的设计,只有把表结构设计正确了,才能支撑软件后续的功能开发,这一步是非常重要的。
2.1、创建数据库tmall_ssm
创建数据库:tmall_ssm,将数据库的编码设置为utf8,便于存放中文。
使用sql命令:
DROP DATABASE IF EXISTS ECMall_ssm;
CREATE DATABASE ECMall_ssm DEFAULT CHARACTER SET utf8;
或使用Navicat for mysql工具来创建:
2.2、创建数据库表
一共需要用到的9张表,对每张表做介绍。
依次如下表:
表名 | 中文含义 | 介绍 |
Category | 分类表 | 存放分类信息,如女装,平板电视,沙发等 |
Property | 属性表 | 存放属性信息,如颜色,重量,品牌,厂商,型号等 |
Product | 产品表 | 存放产品信息,如LED40EC平板电视机,海尔EC6005热水器 |
PropertyValue | 属性值表 | 存放属性值信息,如重量是900g,颜色是粉红色 |
ProductImage | 产品图片表 | 存放产品图片信息,如产品页显示的5个图片 |
Review | 评论表 | 存放评论信息,如买回来的洗衣粉很好用,亲,么么哒 |
User | 用户表 | 存放用户信息,如柒晓白,张三三购物等 |
Order | 订单表 | 存放订单信息,包括邮寄地址,电话号码等信息 |
OrderItem | 订单项表 | 存放订单项信息,包括购买产品种类,数量等 |
/*
Navicat MySQL Data Transfer
Source Server : zou
Source Server Version : 50096
Source Host : localhost:3306
Source Database : ecmall_ssm
Target Server Type : MYSQL
Target Server Version : 50096
File Encoding : 65001
Date: 2018-07-05 21:49:30
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `category`
-- ----------------------------
DROP TABLE IF EXISTS `category`;
CREATE TABLE `category` (
`id` int(11) NOT NULL auto_increment COMMENT '分类表',
`name` varchar(255) default NULL COMMENT '分类名',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of category
-- ----------------------------
-- ----------------------------
-- Table structure for `orderitem`
-- ----------------------------
DROP TABLE IF EXISTS `orderitem`;
CREATE TABLE `orderitem` (
`id` int(11) NOT NULL auto_increment COMMENT '订单项表',
`pid` int(11) default NULL COMMENT '产品表id字段',
`oid` int(11) default NULL COMMENT '订单表id字段',
`uid` int(11) default NULL COMMENT '用户表id字段',
`number` int(11) default NULL COMMENT '购买数量',
PRIMARY KEY (`id`),
KEY `fk_orderitem_user` (`uid`),
KEY `fk_orderitem_product` (`pid`),
KEY `fk_orderitem_order` (`oid`),
CONSTRAINT `fk_orderitem_order` FOREIGN KEY (`oid`) REFERENCES `order_` (`id`),
CONSTRAINT `fk_orderitem_product` FOREIGN KEY (`pid`) REFERENCES `product` (`id`),
CONSTRAINT `fk_orderitem_user` FOREIGN KEY (`uid`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of orderitem
-- ----------------------------
-- ----------------------------
-- Table structure for `order_`
-- ----------------------------
DROP TABLE IF EXISTS `order_`;
CREATE TABLE `order_` (
`id` int(11) NOT NULL auto_increment COMMENT '订单表',
`orderCode` varchar(255) default NULL COMMENT '订单号',
`address` varchar(255) default NULL COMMENT '收货地址',
`post` varchar(255) default NULL COMMENT '邮编',
`receiver` varchar(255) default NULL COMMENT '收货人信息',
`mobile` varchar(255) default NULL COMMENT '手机号码',
`userMessage` varchar(255) default NULL COMMENT '用户备注信息',
`createDate` datetime default NULL COMMENT '订单创建日期',
`payDate` datetime default NULL COMMENT '支付日期',
`deliveryDate` datetime default NULL COMMENT '发货日期',
`confirmDate` datetime default NULL COMMENT '确认收货日期',
`uid` int(11) default NULL COMMENT '用户表id字段',
`status` varchar(255) default NULL COMMENT '订单状态',
PRIMARY KEY (`id`),
KEY `fk_order_user` (`uid`),
CONSTRAINT `fk_order_user` FOREIGN KEY (`uid`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of order_
-- ----------------------------
-- ----------------------------
-- Table structure for `product`
-- ----------------------------
DROP TABLE IF EXISTS `product`;
CREATE TABLE `product` (
`id` int(11) NOT NULL auto_increment COMMENT '产品表',
`name` varchar(255) default NULL COMMENT '产品名称',
`subTitle` varchar(255) default NULL COMMENT '小标题',
`originalPrice` float default NULL COMMENT '原始价格',
`promotePrice` float default NULL COMMENT '优惠价格',
`stock` int(11) default NULL COMMENT '库存量',
`cid` int(11) default NULL COMMENT '分类表的id字段',
`createDate` datetime default NULL COMMENT '创建日期',
PRIMARY KEY (`id`),
KEY `fk_product_category` (`cid`),
CONSTRAINT `fk_product_category` FOREIGN KEY (`cid`) REFERENCES `category` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of product
-- ----------------------------
-- ----------------------------
-- Table structure for `productimage`
-- ----------------------------
DROP TABLE IF EXISTS `productimage`;
CREATE TABLE `productimage` (
`id` int(11) NOT NULL auto_increment COMMENT '产品图片表',
`pid` int(11) default NULL COMMENT '产品表的id字段',
`type` varchar(255) default NULL COMMENT '产品类型,产品图片分单个图片和详情图片',
PRIMARY KEY (`id`),
KEY `fk_productimage_product` (`pid`),
CONSTRAINT `fk_productimage_product` FOREIGN KEY (`pid`) REFERENCES `product` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of productimage
-- ----------------------------
-- ----------------------------
-- Table structure for `property`
-- ----------------------------
DROP TABLE IF EXISTS `property`;
CREATE TABLE `property` (
`id` int(11) NOT NULL auto_increment COMMENT '属性表',
`cid` int(11) default NULL COMMENT '分类表的id字段',
`name` varchar(255) default NULL COMMENT '属性名',
PRIMARY KEY (`id`),
KEY `fk_property_category` (`cid`),
CONSTRAINT `fk_property_category` FOREIGN KEY (`cid`) REFERENCES `category` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of property
-- ----------------------------
-- ----------------------------
-- Table structure for `propertyvalue`
-- ----------------------------
DROP TABLE IF EXISTS `propertyvalue`;
CREATE TABLE `propertyvalue` (
`id` int(11) NOT NULL auto_increment COMMENT '属性值表',
`pid` int(11) default NULL COMMENT '产品表的id字段',
`ptid` int(11) default NULL COMMENT '属性表的id字段',
`value` varchar(255) default NULL COMMENT '属性值',
PRIMARY KEY (`id`),
KEY `fk_propertyvalue_property` (`ptid`),
KEY `fk_propertyvalue_product` (`pid`),
CONSTRAINT `fk_propertyvalue_product` FOREIGN KEY (`pid`) REFERENCES `product` (`id`),
CONSTRAINT `fk_propertyvalue_property` FOREIGN KEY (`ptid`) REFERENCES `property` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of propertyvalue
-- ----------------------------
-- ----------------------------
-- Table structure for `review`
-- ----------------------------
DROP TABLE IF EXISTS `review`;
CREATE TABLE `review` (
`id` int(11) NOT NULL auto_increment COMMENT '评价表',
`content` varchar(4000) default NULL COMMENT '评价内容',
`uid` int(11) default NULL COMMENT '用户表的id字段',
`pid` int(11) default NULL COMMENT '产品表的id字段',
`createDate` datetime default NULL COMMENT '评论时间',
PRIMARY KEY (`id`),
KEY `fk_review_product` (`pid`),
KEY `fk_review_user` (`uid`),
CONSTRAINT `fk_review_product` FOREIGN KEY (`pid`) REFERENCES `product` (`id`),
CONSTRAINT `fk_review_user` FOREIGN KEY (`uid`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of review
-- ----------------------------
-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment COMMENT '用户表',
`name` varchar(255) default NULL COMMENT '用户名',
`password` varchar(255) default NULL COMMENT '密码',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
建立完成以后如图:
这样就设计好了数据库表。
以上就是SSM实战系列之商城系统(前端+后台)《二》数据表结构设计的全部内容。
后面还有更多精彩内容,欢迎关注。想要源码的留下邮箱。
You got a dream, you gotta protect it.
如果你有梦想的话,就要去捍卫它 。 ——《当幸福来敲门》