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

    英雄联盟

    在第一张与第三张表之间,一个人可以参加多个节目,一个节目也可以有多个人参加。例如王大锤参加了《万万没想到》和《报告老板》。而《万万没想到》中有王大锤和吉泽明步。这种是多对多的关系。
  • 相关阅读:
    【BZOJ 1579】 1579: [Usaco2009 Feb]Revamping Trails 道路升级 (最短路)
    有限广播地址与直接广播地址
    人生苦短之我用Python篇(线程/进程、threading模块:全局解释器锁gil/信号量/Event、)
    SQL基础二
    Ubuntu命令:sudo、shutdown、apt-get、vim
    SQL基础一
    MPLS基础一
    第一章 Linux系统入门
    P4简介:数据平面的编程语言
    人生苦短之我用Python篇(安装第三方库、正则表达式)
  • 原文地址:https://www.cnblogs.com/work115/p/5942209.html
Copyright © 2011-2022 走看看