Javaweb毕业设计项目之小米商城(Servlet+Layui+Mybatis) Part2之表设计

在这里插入图片描述
这里我用的是navicat

前言提示

由于正常购买手机,不同的型号和颜色的价格不同,所以在产品上讲颜色和版本进行了表的分离设计,
假设

xiaomi14Pro 单价为2000,那么16g+256g需要额外加400元,
可以将其看作一张表,产品和版本之间是多对多关系
xiaomi14Pro 单价为2000,那么白色需要附加0元,宇宙无敌黑颜色需要额外加400元,
可以将其看作一张表,产品和颜色之间是多对多关系

1.分类表Category

DROP TABLE IF EXISTS `category`;
CREATE TABLE `category` (
  `cid` int(11) NOT NULL AUTO_INCREMENT COMMENT '分类主键  编号',
  `cname` varchar(50) NOT NULL COMMENT '分类名称',
  `cdesc` varchar(200) NOT NULL COMMENT '分类描述',
  PRIMARY KEY (`cid`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=gbk;

2.产品表 Product

DROP TABLE IF EXISTS `product`;
CREATE TABLE `product` (
  `pid` int(11) NOT NULL AUTO_INCREMENT COMMENT '产品编号',
  `pname` varchar(50) NOT NULL COMMENT '产品名称',
  `pprice` double(10,2) NOT NULL COMMENT '产品价格',
  `plast` double(10,2) NOT NULL COMMENT '产品价格',
  `cid` int(11) DEFAULT NULL COMMENT '外键  分类表的主键',
  PRIMARY KEY (`pid`),
  KEY `cid` (`cid`),
  CONSTRAINT `product_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `category` (`cid`)
) ENGINE=InnoDB AUTO_INCREMENT=10000002 DEFAULT CHARSET=gbk;

3.版本表 Version

DROP TABLE IF EXISTS `version`;
CREATE TABLE `version` (
  `vid` int(10) NOT NULL AUTO_INCREMENT,
  `vname` varchar(50) NOT NULL DEFAULT '' COMMENT '版本名称',
  `vdesc` varchar(255) NOT NULL COMMENT '版本描述',
  `vprice` double(10,2) NOT NULL DEFAULT '200.00',
  PRIMARY KEY (`vid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=gbk;

4.产品版本表(关联表) Product_Version

DROP TABLE IF EXISTS `product_version`;
CREATE TABLE `product_version` (
  `pvid` int(11) NOT NULL AUTO_INCREMENT COMMENT '关联表的主键 版本表和产品表',
  `pid` int(11) NOT NULL,
  `vid` int(11) NOT NULL,
  PRIMARY KEY (`pvid`),
  KEY `pid` (`pid`),
  KEY `vid` (`vid`),
  CONSTRAINT `product_version_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `product` (`pid`),
  CONSTRAINT `product_version_ibfk_2` FOREIGN KEY (`vid`) REFERENCES `version` (`vid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=gbk;

5.颜色表 Color

DROP TABLE IF EXISTS `color`;
CREATE TABLE `color` (
  `clid` int(11) NOT NULL AUTO_INCREMENT,
  `clname` varchar(50) NOT NULL COMMENT '颜色的名称',
  `cprice` varchar(200) NOT NULL,
  PRIMARY KEY (`clid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=gbk;

6.产品颜色表(关联表) Product_Color

DROP TABLE IF EXISTS `product_color`;
CREATE TABLE `product_color` (
  `pcid` int(11) NOT NULL AUTO_INCREMENT COMMENT '关联了 商品表和颜色表',
  `pid` int(11) NOT NULL,
  `clid` int(11) NOT NULL,
  PRIMARY KEY (`pcid`),
  KEY `pid` (`pid`),
  KEY `clid` (`clid`),
  CONSTRAINT `product_color_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `product` (`pid`),
  CONSTRAINT `product_color_ibfk_2` FOREIGN KEY (`clid`) REFERENCES `color` (`clid`) 
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=gbk;

7.订单表 Order

DROP TABLE IF EXISTS `order`;
CREATE TABLE `order` (
  `orid` int(11) NOT NULL AUTO_INCREMENT COMMENT '订单编号',
  `ostatus` int(11) NOT NULL DEFAULT '0' COMMENT '1表示已支付 0未支付',
  `ototal` double(10,0) NOT NULL DEFAULT '0',
  `svipid` int(11) DEFAULT NULL COMMENT '外键 会员表的主键',
  PRIMARY KEY (`orid`),
  KEY `svipid` (`svipid`),
  CONSTRAINT `order_ibfk_1` FOREIGN KEY (`svipid`) REFERENCES `svip` (`svipid`)
) ENGINE=InnoDB AUTO_INCREMENT=1000002 DEFAULT CHARSET=gbk;

8.订单项表 OrderItem

DROP TABLE IF EXISTS `orderitem`;
CREATE TABLE `orderitem` (
  `oiid` int(11) NOT NULL AUTO_INCREMENT COMMENT '订单项的主键',
  `onum` int(11) DEFAULT NULL COMMENT '订单项一条的商品数量',
  `ocount` double NOT NULL COMMENT '订单项一条的商品小计',
  `pid` int(11) NOT NULL COMMENT '外键产品表的主键',
  `orid` int(11) NOT NULL COMMENT '外键 订单表的主键',
  PRIMARY KEY (`oiid`),
  KEY `pid` (`pid`) USING BTREE,
  KEY `orid` (`orid`),
  CONSTRAINT `orderitem_ibfk_1` FOREIGN KEY (`pid`) REFERENCES `product` (`pid`),
  CONSTRAINT `orderitem_ibfk_2` FOREIGN KEY (`orid`) REFERENCES `order` (`orid`)
) ENGINE=InnoDB AUTO_INCREMENT=1000002 DEFAULT CHARSET=gbk;

9.会员表Svip

DROP TABLE IF EXISTS `svip`;
CREATE TABLE `svip` (
  `svipid` int(11) NOT NULL AUTO_INCREMENT COMMENT '会员表主键',
  `susername` varchar(11) NOT NULL,
  `spassword` varchar(16) NOT NULL,
  `stel` varchar(11) DEFAULT NULL COMMENT '电话号码',
  `snick` varchar(20) NOT NULL COMMENT '昵称',
  `sgender` int(1) NOT NULL DEFAULT '1' COMMENT '1为男0为女',
  `sbirth` date NOT NULL COMMENT '生日 只需要时分秒',
  `saddr` varchar(200) NOT NULL DEFAULT '湖南省长沙市岳麓区枫林三路' COMMENT '地址',
  PRIMARY KEY (`svipid`)
) ENGINE=InnoDB AUTO_INCREMENT=1000002 DEFAULT CHARSET=gbk;

10.管理员表Admin

DROP TABLE IF EXISTS `admin`;
CREATE TABLE `admin` (
  `adminID` int(11) NOT NULL,
  `auser` varchar(255) NOT NULL,
  `apass` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`adminID`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

11.菜单表Menu

DROP TABLE IF EXISTS `menu`;
CREATE TABLE `menu` (
  `mid` int(11) NOT NULL,
  `mname` varchar(20) NOT NULL COMMENT '模块的名称',
  `mdesc` varchar(200) NOT NULL COMMENT '菜单功能描述',
  PRIMARY KEY (`mid`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值