how2j.cn

步骤 1 : 建表顺序   
步骤 2 : 用户表   
步骤 3 : 分类表   
步骤 4 : 属性表   
步骤 5 : 产品表   
步骤 6 : 属性值表   
步骤 7 : 产品图片表   
步骤 8 : 评价表   
步骤 9 : 订单表   
步骤 10 : 订单项表   

完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
在建表过程中,会设置外键约束,所以表和表之间有依赖关系。 因此会先建立被外键指向的表,比如User,Category,然后再是其他表
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
CREATE TABLE user ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) DEFAULT NULL, password varchar(255) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE user (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(255) DEFAULT NULL,
  password varchar(255) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
CREATE TABLE category ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) DEFAULT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE category (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(255) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
从这个表开始, 就有外键约束了。
本表的外键cid,指向分类表的id字段
CREATE TABLE property ( id int(11) NOT NULL AUTO_INCREMENT, cid int(11) DEFAULT NULL, name varchar(255) DEFAULT NULL, PRIMARY KEY (id), CONSTRAINT fk_property_category FOREIGN KEY (cid) REFERENCES category (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE property (
  id int(11) NOT NULL AUTO_INCREMENT,
  cid int(11) DEFAULT NULL,
  name varchar(255) DEFAULT NULL,
  PRIMARY KEY (id),
  CONSTRAINT fk_property_category FOREIGN KEY (cid) REFERENCES category (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
产品表字段稍多,讲解一下
name: 产品名称
subTitle: 小标题
originalPrice: 原始价格
promotePrice: 优惠价格
stock: 库存
createDate: 创建日期

本表的外键cid,指向分类表的id字段
CREATE TABLE product ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) DEFAULT NULL, subTitle varchar(255) DEFAULT NULL, originalPrice float DEFAULT NULL, promotePrice float DEFAULT NULL, stock int(11) DEFAULT NULL, cid int(11) DEFAULT NULL, createDate datetime DEFAULT NULL, PRIMARY KEY (id), CONSTRAINT fk_product_category FOREIGN KEY (cid) REFERENCES category (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE product (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(255) DEFAULT NULL,
  subTitle varchar(255) DEFAULT NULL,
  originalPrice float DEFAULT NULL,
  promotePrice float DEFAULT NULL,
  stock int(11) DEFAULT NULL,
  cid int(11) DEFAULT NULL,
  createDate datetime DEFAULT NULL,
  PRIMARY KEY (id),
  CONSTRAINT fk_product_category FOREIGN KEY (cid) REFERENCES category (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
本表有两个外键
外键ptid,指向属性表的id字段
外键pid,指向产品表的id字段
CREATE TABLE propertyvalue ( id int(11) NOT NULL AUTO_INCREMENT, pid int(11) DEFAULT NULL, ptid int(11) DEFAULT NULL, value varchar(255) DEFAULT NULL, PRIMARY KEY (id), CONSTRAINT fk_propertyvalue_property FOREIGN KEY (ptid) REFERENCES property (id), CONSTRAINT fk_propertyvalue_product FOREIGN KEY (pid) REFERENCES product (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE propertyvalue (
  id int(11) NOT NULL AUTO_INCREMENT,
  pid int(11) DEFAULT NULL,
  ptid int(11) DEFAULT NULL,
  value varchar(255) DEFAULT NULL,
  PRIMARY KEY (id),
  CONSTRAINT fk_propertyvalue_property FOREIGN KEY (ptid) REFERENCES property (id),
  CONSTRAINT fk_propertyvalue_product FOREIGN KEY (pid) REFERENCES product (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
type表示类型,产品图片分单个图片和详情图片两种

本表的外键pid,指向产品表的id字段
CREATE TABLE productimage ( id int(11) NOT NULL AUTO_INCREMENT, pid int(11) DEFAULT NULL, type varchar(255) DEFAULT NULL, PRIMARY KEY (id), CONSTRAINT fk_productimage_product FOREIGN KEY (pid) REFERENCES product (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE productimage (
  id int(11) NOT NULL AUTO_INCREMENT,
  pid int(11) DEFAULT NULL,
  type varchar(255) DEFAULT NULL,
  PRIMARY KEY (id),
  CONSTRAINT fk_productimage_product FOREIGN KEY (pid) REFERENCES product (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
外键pid,指向产品表的id字段
外键uid,指向用户表的id字段
CREATE TABLE review ( id int(11) NOT NULL AUTO_INCREMENT, content varchar(4000) DEFAULT NULL, uid int(11) DEFAULT NULL, pid int(11) DEFAULT NULL, createDate datetime DEFAULT NULL, PRIMARY KEY (id), 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;
CREATE TABLE review (
  id int(11) NOT NULL AUTO_INCREMENT,
  content varchar(4000) DEFAULT NULL,
  uid int(11) DEFAULT NULL,
  pid int(11) DEFAULT NULL,
  createDate datetime DEFAULT NULL,
  PRIMARY KEY (id),
  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;
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
订单表的字段也比较多,讲解一下:
orderCode: 订单号
address:收货地址
post: 邮编
receiver: 收货人信息
mobile: 手机号码
userMessage: 用户备注信息
createDate: 订单创建日期
payDate: 支付日期
deliveryDate: 发货日期
confirmDate:确认收货日期
status: 订单状态
外键uid,指向用户表id字段
CREATE TABLE order_ ( id int(11) NOT NULL AUTO_INCREMENT, orderCode varchar(255) DEFAULT NULL, address varchar(255) DEFAULT NULL, post varchar(255) DEFAULT NULL, receiver varchar(255) DEFAULT NULL, mobile varchar(255) DEFAULT NULL, userMessage varchar(255) DEFAULT NULL, createDate datetime DEFAULT NULL, payDate datetime DEFAULT NULL, deliveryDate datetime DEFAULT NULL, confirmDate datetime DEFAULT NULL, uid int(11) DEFAULT NULL, status varchar(255) DEFAULT NULL, PRIMARY KEY (id), CONSTRAINT fk_order_user FOREIGN KEY (uid) REFERENCES user (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE order_ (
  id int(11) NOT NULL AUTO_INCREMENT,
  orderCode varchar(255) DEFAULT NULL,
  address varchar(255) DEFAULT NULL,
  post varchar(255) DEFAULT NULL,
  receiver varchar(255) DEFAULT NULL,
  mobile varchar(255) DEFAULT NULL,
  userMessage varchar(255) DEFAULT NULL,
  createDate datetime DEFAULT NULL,
  payDate datetime DEFAULT NULL,
  deliveryDate datetime DEFAULT NULL,
  confirmDate datetime DEFAULT NULL,
  uid int(11) DEFAULT NULL,
  status varchar(255) DEFAULT NULL,
  PRIMARY KEY (id),
  CONSTRAINT fk_order_user FOREIGN KEY (uid) REFERENCES user (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
完整的SSM模仿天猫项目,使用J2SE、前端技术(包含所有前端jsp文件)、J2EE,SSM一整套技术栈, 从无到有涵盖全部126个知识点,560个开发步骤, 充实SSM项目经验,为简历加上一个有吸引力的砝码.
增值内容,点击购买
这个表是外键最多的一个表
外键pid,指向产品表id字段
外键oid,指向订单表id字段
外键uid,指向用户表id字段
number字段表示购买数量
CREATE TABLE orderitem ( id int(11) NOT NULL AUTO_INCREMENT, pid int(11) DEFAULT NULL, oid int(11) DEFAULT NULL, uid int(11) DEFAULT NULL, number int(11) DEFAULT NULL, PRIMARY KEY (id), CONSTRAINT fk_orderitem_user FOREIGN KEY (uid) REFERENCES user (id), CONSTRAINT fk_orderitem_product FOREIGN KEY (pid) REFERENCES product (id), CONSTRAINT fk_orderitem_order FOREIGN KEY (oid) REFERENCES order_ (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE orderitem (
  id int(11) NOT NULL AUTO_INCREMENT,
  pid int(11) DEFAULT NULL,
  oid int(11) DEFAULT NULL,
  uid int(11) DEFAULT NULL,
  number int(11) DEFAULT NULL,
  PRIMARY KEY (id),
  CONSTRAINT fk_orderitem_user FOREIGN KEY (uid) REFERENCES user (id),
  CONSTRAINT fk_orderitem_product FOREIGN KEY (pid) REFERENCES product (id),
  CONSTRAINT fk_orderitem_order FOREIGN KEY (oid) REFERENCES order_ (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2020-09-05 订单表的status字段表示哪几种情况呢
alanguo666

订单表的status字段表示哪几种情况呢




2 个答案

Jesse木子
答案时间:2021-01-16
比如 当前订单 未发货 已发货 确认收货

how2j
答案时间:2020-09-06
在相关实现部分有具体讲解: https://how2j.cn/k/tmall_ssm/tmall_ssm-1485/1485.html#step6547



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2020-07-01 有了orderitem为什么还需要创建一个order表
jiajianpeng

一条orderitem数据不就对应着一条order数据吗,把order数据合并到orderitem表里面不行吗




3 个答案

Jesse木子
答案时间:2021-01-16
订单A(order) (orderItem) 订单详情1 苹果 (orderItem) 订单详情2 香蕉 你给我合并试试?

chichifanvge
答案时间:2020-08-03
减少数据冗余

how2j
答案时间:2020-07-02
如果是这样还要分类表干什么? 分类信息都放在产品表里不行了吗? 你思考一下?



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2020-05-27 为什么订单项也要关联用户表?
2020-05-20 关于订单表 order 为什么 命名为 order_ 的问题。
2020-05-17 j2ee的数据库


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 24 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 实践项目-天猫整站SSM-建表SQL语句 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图