表之间的关系
一对一、多对一(其实就是主从关系,在从表中设置一个外键关联上主表)、多对多关系(需要一个中间表,设置两个外键,分别关联到两个表的主键)
比如订单和商品之间:一个订单可以包含多个商品,一个商品也可以存在于多个订单中。
订单1包含了两件商品,商品1存在于订单1和订单2中。
具体设计过程如下所示:
1、设计一个订单表
mysql> create table tb_order(
-> id int primary key auto_increment,
-> payment double(7,2),
-> status tinyint);\
Query OK, 0 rows affected, 1 warning (0.04 sec)
2、设计一个商品表
mysql> create table tb_goods(
-> id int primary key auto_increment,
-> title varchar(100),
-> price double(7,2));
Query OK, 0 rows affected, 1 warning (0.03 sec)
3、设计中间表关联商品和订单表
mysql> create table tb_order_goods(
-> id int primary key auto_increment,
-> order_id int,
-> goods_id int,
-> constraint fk_order_id foreign key(order_id) references tb_order(id),
-> constraint fk_goods_id foreign key(goods_id) references tb_goods(id));
Query OK, 0 rows affected (0.33 sec)