MySQL(10)-----多表创建及描述表关系(一对多的分析和实现)

1.前言

在开发中,针对一对多的关系,一方称之为主表或一表,多方称之为多表或从表。

为了表示一对多的关系,一般会在多表的一方添加一个字段,字段名称自定义(建议:主表的名称_id)

字段类型一般和主表的主键的类型保持一致,该字段称之为外键

【外键约束不是必须的,可以通过Java程序来控制】

2. 一对多

用户表和订单表

----用户表

create table user(

     id int primary key auto_increatement,

     username varchar(20)

);

----订单表

create table orders(

     id int primary key auto_increatement,

     totaleprice double,

     user_id int

);

----为了保证数据的有效性和完整性,在多表的一方添加约束(外键约束)。

格式:

alter table 多表名称 add foreign key (外键名称) references 主表名称(主键);

alter table orders add foreign key(user_id) references user(id);

注意:添加了外键约束后有如下特点:

1.主表中不能删除从表中已引用的数据;

2.从表中不能添加主表不存在的数据;

3.外键约束常用于项目上线时。

主表:

MySQL(10)-----多表创建及描述表关系(一对多的分析和实现)_第1张图片

从表:MySQL(10)-----多表创建及描述表关系(一对多的分析和实现)_第2张图片

主表--从表的对象模型:

MySQL(10)-----多表创建及描述表关系(一对多的分析和实现)_第3张图片

从上图来看,可以成功的在从表中插入主表存在的数据(id),当插入主表不存在的id(id=8)这条数据时,将爆外键异常。

3. 小结

开发中处理一对多:

在从表(多表)中添加一个外键(foreign key),名称一般主表的名称,且字段类型必须和主表的主键字段类型保持一致。

为保证数据的有效性和完整性,在多表的外键上添加外键约束即可。


人的一生中,最光辉的一天并非是功成名就那天,而是从悲叹与绝望中产生对人生的挑战,以勇敢迈向意志那天。愿你就像早晨八九点钟的太阳,活力十足,永远年轻。

你可能感兴趣的:(MySQL)