1. 多表之间的关系

     1. 分类:1. 一对一(了解):* 如:人和身份证* 分析:一个人只有一个身份证,一个身份证只能对应一个人2. 一对多(多对一):* 如:部门和员工* 分析:一个部门有多个员工,一个员工只能对应一个部门3. 多对多:* 如:学生和课程* 分析:一个学生可以选择很多门课程,一个课程也可以被很多学生选择2. 实现关系:1. 一对多(多对一):* 如:部门和员工* 实现方式:在多的一方建立外键,指向一的一方的主键。
    

     2. 多对多:* 如:学生和课程* 实现方式:多对多关系实现需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键

     3. 一对一(了解):* 如:人和身份证* 实现方式:一对一关系实现,可以在任意一方添加唯一外键指向另一方的主键。

案例:

 -- 创建旅游线路分类表 tab_category-- cid 旅游线路分类主键,自动增长-- cname 旅游线路分类名称非空,唯一,字符串 100CREATE TABLE tab_category (cid INT PRIMARY KEY AUTO_INCREMENT,cname VARCHAR(100) NOT NULL UNIQUE);-- 创建旅游线路表 tab_route/*rid 旅游线路主键,自动增长rname 旅游线路名称非空,唯一,字符串 100price 价格rdate 上架时间,日期类型cid 外键,所属分类*/CREATE TABLE tab_route(rid INT PRIMARY KEY AUTO_INCREMENT,rname VARCHAR(100) NOT NULL UNIQUE,price DOUBLE,rdate DATE,cid INT,FOREIGN KEY (cid) REFERENCES tab_category(cid));/*创建用户表 tab_useruid 用户主键,自增长username 用户名长度 100,唯一,非空password 密码长度 30,非空name 真实姓名长度 100birthday 生日sex 性别,定长字符串 1telephone 手机号,字符串 11email 邮箱,字符串长度 100*/CREATE TABLE tab_user (uid INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(100) UNIQUE NOT NULL,PASSWORD VARCHAR(30) NOT NULL,NAME VARCHAR(100),birthday DATE,sex CHAR(1) DEFAULT '男',telephone VARCHAR(11),email VARCHAR(100));/*创建收藏表 tab_favoriterid 旅游线路 id,外键date 收藏时间uid 用户 id,外键rid 和 uid 不能重复,设置复合主键,同一个用户不能收藏同一个线路两次*/CREATE TABLE tab_favorite (rid INT, -- 线路idDATE DATETIME,uid INT, -- 用户id-- 创建复合主键PRIMARY KEY(rid,uid), -- 联合主键FOREIGN KEY (rid) REFERENCES tab_route(rid),FOREIGN KEY(uid) REFERENCES tab_user(uid));

[JavaWeb-MySQL]多表关系介绍相关推荐

  1. 多表关系介绍 mysql

    多表关系介绍 mysql 关注表与表之间的关系 一对一关系 一个人只有一个身份证 一个身份证只对应一个人 一对多关系(或者说 多对一关系) 一个部门有多个员工 一个员工只能对应一个部门 多对多关系 一 ...

  2. 一、mysql分表简单介绍

    一.Mysql分表的原因 1.当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了. 分表的目的就在于此,减小数据库的负担,缩短查询时间. 2.mysql中 ...

  3. MySQL多表关系及多表查询

    多表关系 在关系型数据库中存在着三种多表关系,分别是一对多(多对一).多对多以及一对一.之所以会产生这些关系,是因为在进行数据设计的时候,分析得出业务之间存在着一定的关系,进而在数据中也就存在了这些关 ...

  4. mysql多表关系.

    一.表关系 1.一对多(多对一) 2.多对多 3.一对一 1.一对多 (一个部门如研发部可以供N个员工对应,但是一个员工只能对应一个部门职务) 2.多对多        [箭头代表键绑定] 代码演示如 ...

  5. MySQL——数据库表关系

    文章目录 一. mysql数据库中常见表关系 二. 一对一关系 1. 特点 2. 示例代码 三. 一对多关系 1. 特点 2. 示例代码 四. 多对多关系 1. 特点 2. 示例代码 五. 两表关联查 ...

  6. mysql表损坏自动修复工具_对MySQL数据表(已损坏)的修复

    以下的文章主要讲述的是如何正确修复已损坏的MySQL数据表,主要是了两种方法,一种是check table与 repair table ,一种是通过myisamchk, isamchk ,于断电或非正 ...

  7. 基于javaweb的crm客户关系管理系统(java+springboot+echarts+freemarker+layui+mysql)

    基于javaweb的crm客户关系管理系统(java+springboot+echarts+freemarker+layui+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 ecl ...

  8. ER图和关系模型到MySQL数据库表

    本篇主要介绍了MySQL数据库表从ER图到关系模型,再到数据库表的创建过程及其表结构的修改.通过本篇的学习,可以掌握以下内容: ● 应用ER图和关系模型创建数据库表 ● 数据库表结构的修改 1.moo ...

  9. MySQL基础(三)表关系及数据的增删改查

    这一部分主要使用SQL中的DML,数据库操作语言(data manipulation language),对数据库数据进行增.删.改.查操作,作为前提,先介绍关系型数据库中的表关系. 关系型数据库(R ...

最新文章

  1. 比特币耶稣Roger Ver:比特币现金是比特币扩容问题的答案
  2. oracle往mysql数据同步存储过程_Oracle数据库之间数据同步
  3. python发明者叫什么-编程语言简史:有人不喜欢花括号,于是他发明了 Python
  4. 第四范式先知(Sage)率先通过欧盟GDPR认证
  5. 微信利用PHP创建自定义菜单的方法
  6. c语言int32u的作用,求c语言大神 帮我解释一下这段说的都是啥?
  7. 试题3 基础练习 数列排序
  8. [math][mathematica] archlinux 下 mathematica 的安装 (科学计算软件 mathematica/matlab/sagemath)...
  9. php读取带分隔符的txt文件,Pandas中文手册
  10. oracle语句查询时间范围,oracle时间范围查询
  11. Google网络硬盘(GDrive):千呼万唤不出来
  12. 关于app申请软件著作权登记时软件名称命名的问题
  13. Java进度条(excel文件解析)的实现
  14. 计算机打开页面恢复默认大小,win10怎样恢复Windows窗口默认的大小?
  15. 远程桌面对方计算机无法远程,win7开启QQ远程协助无法连接对方电脑如何解决
  16. c语言转化音乐格式转换器安卓版,音乐格式转换器安卓版
  17. matlab程序vpa用处,Matlab 提高精度 vpa
  18. 安卓开发学习之TCP通信
  19. 通过调用小黄鸡接口进行自聊天
  20. java 时间戳 周几_Java:Unix时间戳记中的日期

热门文章

  1. [转]想要成为一名优秀的Java程序员,这份文档必读
  2. 投巧解决JavaScript split方法出现空字符的问题
  3. bootstrap 开源框架demo_5 个接私活必备的 Java 开源项目!
  4. 试卷代号6098计算机应用基础,2231电大《Visual Basic程序设计》试题和答案200507
  5. omnicppcomplete php,VIM 常用法 (三)
  6. 地壳中元素含量排名记忆口诀_Nature:利用熔融包裹体的元素和同位素示踪俯冲带流体来源...
  7. mysql 多数据库事务_多数据库事务处理
  8. 手动挡五个档位示意图_汽车档位越多越好?听听专业回答
  9. python连接linux堡垒机_利用Python Paramiko开发linux堡垒机
  10. 什么叫一年有四季......