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

设计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的记录时,就会报错

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

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

    参考链接:https://blog.csdn.net/Song_JiangTao/article/details/82192189 1.打开你想要设计的表 这里写图片描述2.清楚你想要设计哪个字段为唯 ...

  2. 【MySQL】mac环境下使用navicat premium连接mysql乱码问题

    ---恢复内容开始--- 最重要的两点:使用navicat premium创建mysql连接和在mysql连接里面创建数据库时,需要注意. 1.创建连接时,Encoding不需要手动选择,保持Auto ...

  3. 【mysql】如何通过navicat配置表与表的多对一关系,一对一关系?设计外键的效果

    背景: 现在要将接口自动化测试结果持久化,当前只是每次运行接口测试,将测试结果通过邮件发送给项目组成员.邮件内容如下: 表设计: 为了呈现这个结果:我设计了2张表run_result和run_deta ...

  4. Navicat Premium 修改MySQL密码(忘记密码的情况下)

    Navicat Premium 修改MySQL密码 1,首先,Navicat Premium还能够连接MySQL. 2,选择数据库,右键单击,选择“命令行模式...”,下图示例 3,打开命令行模式, ...

  5. 创建以mybatis为基础的web项目(2)mabitis中的一对一关系项目实战

    mabitis中的一对一关系项目实战: 1.首先根据创建以mybatis为基础的web项目(1)中的流程将web项目部署好 打开IDE,建立web工程 在lib下面粘贴mybatis的jar,log4 ...

  6. Navicat Premium 12.0.18安装与激活(转)

    转载:https://www.jianshu.com/p/42a33b0dda9c 一.Navicat Premium 12下载 Navicat Premium 12是一套数据库开发管理工具,支持连接 ...

  7. EF Core 2.1 支持数据库一对一关系

    在使用EF Core和设计数据库的时候,通常一对多.多对多关系使用得比较多,但是一对一关系使用得就比较少了.最近我发现实际上EF Core很好地支持了数据库的一对一关系. 数据库 我们先来看看SQL ...

  8. mybatis中一对一关系映射

    一对一关系中普通的配置方式 一.多表连接查询语句: <select id="selectStudentWithAddress" parameterType="int ...

  9. navicat premium 的使用——navicat 连接MySQL数据库

    最近,在学习navicat premium这款第三方软件,他是一个三方数据库管理软件,在前一段时间实习的时候,我使用这款软件调用过服务器上的数据库,不过,当时并没有仔细研究,再次遇到这个软件,我决定仔 ...

随机推荐

  1. clientXxx与offsetXxx与scrollXxx区别

    1.clientXxx与offsetXxx与scrollXxx 1.clientXxx: clientWidth = width+padding(left+right) clientHeight = ...

  2. 真香系列之 Golang 升级

    Golang 以前的依赖管理一直饱受诟病,社区的方案也层出不穷,比如 vendor, glide, godep 等.之前的依赖管理一直是依靠 GOPATH 或者将依赖代码下载到本地,这种方式都有劣势. ...

  3. 转载MySQL面试题

    1.MySQL的复制原理以及流程 (1).复制基本原理流程 主:binlog线程--记录下所有改变了数据库数据的语句,放进master上的binlog中: 从:io线程--在使用start slave ...

  4. Ant 学习

    到了新公司,发现公司使用ant 来代码生成.本来学习后写下来.在网上找到一篇教程,实在是非常给力... 就把连接记下来吧:http://www.blogjava.net/amigoxie/archiv ...

  5. shiro细节、默认的过滤器、匹配模式和顺序

    部分细节 [urls] 部分的配置,其格式是:“url=拦截器[参数],拦截器[参数]”: 如果当前请求的url匹配[urls] 部分的某个url模式,将会执行其配置的拦截器. anon(anonym ...

  6. Maven项目构建利器01——为什么要使用Maven

    1.为什么要使用Maven a)一个项目就是一个工程 如果一个项目非常庞大,不适合用package(包)来划分模块, 最好是每一个模块对应一个工程 分工合作,借助于Maven就可以将一个项目拆分成多个 ...

  7. AIX中crontab和at 定时任务

    1.crontab crontab文件用于在指定日期和时间周期性地执行作业 crontab 作业存放在/var/spool/cron/crontabs/$USER cron根据crontab文件项运行 ...

  8. RBAC | YAML |

    YAML配置文件: 1.凡是可以在application.properties配置的文件,都可以在application.yaml文件中配置 2.properties的优先级大于yaml的优先级 后端 ...

  9. MINIUI grid学习笔记

    grid 控件a.事件的绑定和移除         grid.on("rowclick", fn); //绑定事件 (这个的话类似jquery的绑定事件)         grid ...

  10. python实现学生信息系统

    要求:不能重名 ''' 一.需求:进入系统显示系统功能界面,功能如下: 1.添加学员 2.删除学员 3.修改学员信息 4.查询学员信息 5.显示所有学员信息 6.退出功能 ''' # 定义功能界面函数 ...