MySQL数据库基础(七):商城案例的创建

本文详细介绍了商城案例的数据库设计,包括用户表、订单表、商品表和商品分类表的结构,以及它们之间的关联关系。通过具体实例展示了如何创建这些表格,并插入数据,最后实现了订单与商品间的多对多关联。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

** 1、商城案例所有的表

用户表、订单表、商品表、商品分类

用户表

用户ID用户名密码手机号

中间表

cnopno

订单表

订单编号订单总价下单时间收货地址外键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);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值