这里我用的是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;