【mysql】一对一关系的理解,以及Navicat Premium怎么设置字段的唯一性(UNIQUE)?

背景:一对一关系设计方法:

设计2张表:customer表,student表

学生表中通过字段customer_id与customer表产生关系。

student表中的customer_id与customer表中的id值(主键)应当是一对一的关系。

所以在student表中要保证customer_id值是唯一的。

 

2张表的表结构如下:

左表的一条记录唯一对应右表的一条记录,反之也一样

create table customer(
    id int primary key auto_increment,
    name char(20) not null,
    qq char(10) not null,
    phone char(16) not null
);
 
create table student(
    id int primary key auto_increment,
    class_name char(20) not null,
    customer_id int unique, #该字段一定要是唯一的
    foreign key(customer_id) references customer(id) #此时外键的字段一定要保证unique
    on delete cascade
    on update cascade

);

 

通过navicat设置表的某1个字段值为一,就是为该字段建立索引,索引类型选择UNIQUE

 

具体的操作步骤,参照:

Navicat Premium怎么设置字段的唯一性(UNIQUE)?

 

 

检查配置的结果:

当某1个字段的值被设置为唯一之后,如表中已经存在custome_id=1,当再次插入custome_id=1的记录时,就会报错

 

 

 

posted @ 2019-10-09 13:36  wangju003  阅读(1410)  评论(0编辑  收藏  举报