通过对商城项目的部分表关系进行分析,完成数据库表的设计
create database db6 character set utf8;
2. 创建用户表
CREATE TABLE user ( uid varchar(32) PRIMARY KEY, -- 用户ID username varchar(20) , -- 用户名 password varchar(20) , -- 密码 telephone varchar(20) , -- 电话 birthday date , -- 生日 sex varchar(10) -- 性别 );
INSERT INTO USER VALUES ('001','渣渣辉','123456','13511112222','2015-11-04','男'), ('002','药水哥','123456','13533334444','1990-02-01','男'), ('003','大明白','123456','13544445555','2015-11-03','男'), ('004','长海','123456','13566667777','2000-02-01','男'), ('005','乔杉','123456','13588889999','2000-02-01','男');
创建订单表
CREATE TABLE orders ( oid varchar(32) PRIMARY KEY, -- 订单id ordertime datetime , -- 下单时间 total double , -- 总金额 name varchar(20), -- 收货人姓名 telephone varchar(20) , -- 电话 address varchar(30) , -- 地址 state int(11) , -- 订单状态 uid varchar(32), -- 外键字段 对应用户表id CONSTRAINT ofk_0001 FOREIGN KEY (uid) REFERENCES user (uid) );
-- 插入一条订单数据 INSERT INTO orders VALUES('order001','2019-10-11',5500,'乔杉','15512342345','皇家洗浴',0,'001');
创建商品分类表
CREATE TABLE category ( cid varchar(32) PRIMARY KEY, cname varchar(20) );
INSERT INTO `category` VALUES ('1','手机数码'),('2','电脑办公'),('3','运动鞋服'),('4','图书音像');
创建商品表
CREATE TABLE product ( pid varchar(32) PRIMARY KEY, -- 商品id pname varchar(50) , -- 商品名称 price double, -- 商品价格 pdesc varchar(255), -- 商品描述 pflag int(11) , -- 商品状态 1 上架 ,0 下架 cid varchar(32) , -- 外键对应 分类表id KEY sfk_0001 (cid), CONSTRAINT sfk_0001 FOREIGN KEY (cid) REFERENCES category (cid) );
INSERT INTO `product` VALUES ('1','小米6',2200,'小米 移动联通电信4G手机 双卡双待',0,'1'), ('2','华为Mate9',2599,'华为 双卡双待 高清大屏',0,'1'), ('3','OPPO11',3000,'移动联通 双4G手机',0,'1'), ('4','华为荣耀',1499,'3GB内存标准版 黑色 移动4G手机',0,'1'), ('5','华硕台式电脑',5000,'爆款直降,满千减百',0,'2'), ('6','MacBook',6688,'128GB 闪存',0,'2'), ('7','ThinkPad',4199,'轻薄系列1)',0,'2'), ('8','联想小新',4499,'14英寸超薄笔记本电脑',0,'2'), ('9','李宁音速6',500,'实战篮球鞋',0,'3'), ('10','AJ11',3300,'乔丹实战系列',0,'3'), ('11','AJ1',5800,'精神小伙系列',0,'3');
6. 订单项表 (中间表)
-- 订单项表 CREATE TABLE orderitem ( itemid VARCHAR(32) PRIMARY KEY, -- 订单项ID pid VARCHAR(32), -- 外键 对应商品表 id oid VARCHAR(32), -- 外键 对应订单表 id KEY fk_0001 (pid), KEY fk_0002 (oid), CONSTRAINT fk_0001 FOREIGN KEY (pid) REFERENCES product (pid), CONSTRAINT fk_0002 FOREIGN KEY (oid) REFERENCES orders (oid) );
-- 向中间表中插入两条数据 INSERT INTO orderitem VALUES('item001','1','order001'); INSERT INTO orderitem VALUES('item002','11','order001');