** 1、商城案例所有的表
用户表、订单表、商品表、商品分类
用户表
用户ID | 用户名 | 密码 | 手机号 |
---|
中间表
cno | pno |
---|
订单表
订单编号 | 订单总价 | 下单时间 | 收货地址 | 外键uno(指向用户表的用户ID) |
---|
商品表
商品编号 | 商品名称 | 商品价格 | 外键cno(指向商品分类表的分类ID) |
---|
商品分类
分类ID | 分类名称 | 分类描述 |
---|
2、商城案例的分析
- 用户表与订单表:一对多(订单表加外键指向用户表的用户ID)
一个用户可以有多个订单,所以是一对多
- 商品分类与商品表:一对多(商品表中加外键指向商品分类表的ID)
一个商品分类中有多个商品,所以是一对多
- 订单表与商品表:多对多(中间表:创建一张两列的表oid指向订单编号,pno指向商品编号。)
一个订单里可以有多个商品,一个商品也可以在多个订单里,所以是多对多
3、建表
3.1 用户表
创建用户表(用户ID、用户名、密码、手机)
create table user (
uid int primary key auto_increment,
username varchar(31),
password varchar(31),
phone varchar(11)
);
用户表中插入数据
insert into user values(null,'zhangsan','123','13633338888');
3.2 订单表
创建订单表(订单编号、总价、下单时间、地址、外键用户的ID)
create table orders(
oid int primary key auto_increment,
sum int not null,
otime timestamp,
address varchar(100),
uno int,
foreign key(uno) references user(uid)
);
订单中插入数据
insert into orders values(null,200,null,'西安工业大学',1);
insert into orders values(null,300,null,'苏席村',1);
3.3商品分类表
创建商品分类表(分类ID、分类名称、分类描述)
create table category(
cid int primary key auto_increment,
cname varchar(15),
cdesc varchar(100)
);
插入数据
insert into category values(null,'手机数码','电子产品');
insert into category values(null,'鞋靴箱包','生活用品');
insert into category values(null,'香烟酒水','黄鹤楼,二锅头');
insert into category values(null,'酸奶饼干','娃哈哈,纯甄');
insert into category values(null,'零食','瓜子,花生,辣条');
3.4商品表
创建商品表(商品ID、商品名称、商品价格、外键cno)
create table product(
pid int primary key auto_increment,
pname varchar(10),
price double,
cno int,
foreign key(cno) references category(cid)
);
插入数据
insert into product values(null,'小米8',4999,1);
insert into product values(null,'锤子',66,1);
insert into product values(null,'阿迪',2000,2);
insert into product values(null,'老村长',88,3);
insert into product values(null,'劲酒',35,3);
insert into product values(null,'小熊饼干',3.5,4);
insert into product values(null,'娃哈哈',10,4);
insert into product values(null,'卫龙辣条',3,5);
insert into product values(null,'旺旺雪饼',2,5);
3.5订单项
3.5.1 创建订单项:中间表(订单ID、商品ID、商品数量、订单总价)
create table orderitem(
ono int,
pno int,
foreign key(ono) references orders(oid),
foreign key(pno) references product(pid),
ocount int,
subsum double
);
3.5.2 给1号订单添加200元商品
查看商品表
select * from product;
买50个旺旺雪饼,10个娃哈哈,刚好200元
insert into orderitem values(1,18,50,100);
insert into orderitem values(1,16,10,100);
3.5.3 给2号订单添加300元商品
买100个卫龙辣条
insert into orderitem values(2,17,100,300);