zoukankan      html  css  js  c++  java
  • 关系型数据库表与表之间的三种关系

    一、一对一关系:

    定义:有两个表,在第一个表中的某一行只与第二个表中的一行相关,同时第二个表中的某一行,也只与第一个表中的一行相关,我们称这两个表为一对一关系。
    例如:
    第一张表:

    ID

    姓名

    国籍

    贡献

    1001

    王大锤

    中国

    万万没想到

    1002

    吉泽明步

    日本

    动作艺术片

    1003

    刀锋女王

    未知

    计划生育

    第二张表:

    ID

    出生日期

    逝世日期

    1001

    1988

    NULL

    1002

    1984

    NULL

    1003

    未知

    3XXX

    这里的第一张表的每一行只与第二张表的一行相对应。
    提示:一对一关系是比较少见的关系类型。但在某些情况下,还是会需要使用这种类型。
    情况一:一个表包含了太多的数据列
    情况二:将数据分离到不同的表,划分不同的安全级别。
    情况三:将常用数据列抽取出来组成一个表
     
    二、一对多关系:
    定义:有多张表,第一个表中的行可以与第二个表中的一到多个行相关联,但是第二个表中的一行只能与第一个表中的一行相关联。
    例如:
    第一张表:

    ID

    姓名

    国籍

    1001

    王大锤

    中国

    1002

    吉泽明步

    日本

    1003

    刀锋女王

    未知

    第二张表:

    ID

    节目ID

    1001

    10001

    1001

    10002

    1003

    10003

    1003

    10004

    第三张表:

    节目ID

    节目名称

    10001

    万万没想到

    10002

    报告老板

    10003

    星际2

    10004

    英雄联盟

    这里的第一张表的一行可以与第二张表的多行相对应;第二张表的一行与第三张表的一行相对应。
    提示:一对多关系是最常见的关系类型。
     
    三、多对多关系:
    定义:有两个表,第一个表的一行可以与第二个表中的一到多个行相关联,同时,第二个表中的一行可以与第一个表中的一到多个行相关联。
    例如:
    第一张表:

    ID

    姓名

    国籍

    1001

    王大锤

    中国

    1002

    吉泽明步

    日本

    1003

    刀锋女王

    未知

    第二张表:

    ID

    节目ID

    1001

    10001

    1001

    10002

    1003

    10003

    1003

    10004

    第三张表:

    节目ID

    节目名称

    10001

    万万没想到

    10002

    报告老板

    10003

    星际2

    10004

    英雄联盟

    在第一张与第三张表之间,一个人可以参加多个节目,一个节目也可以有多个人参加。例如王大锤参加了《万万没想到》和《报告老板》。而《万万没想到》中有王大锤和吉泽明步。这种是多对多的关系。
  • 相关阅读:
    composer 的安装以及一些插件的下载等
    linux 服务器安装php5.6
    数据库异地备份---服务器配置流程
    expect安装
    linux 服务器安装mysql5.6
    使用navicat 使用IP、用户名、密码直接连接linux服务器里面的数据库
    函数指针 指针函数
    信号量
    消息队列-Message Queue
    生成库文件,会链接依赖的库文件吗?
  • 原文地址:https://www.cnblogs.com/work115/p/5942209.html
Copyright © 2011-2022 走看看