** 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;

MySQL创建购物车表 mysql怎么创建商品表_一对多


买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);

MySQL创建购物车表 mysql怎么创建商品表_外键_02