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

    英雄联盟

    在第一张与第三张表之间,一个人可以参加多个节目,一个节目也可以有多个人参加。例如王大锤参加了《万万没想到》和《报告老板》。而《万万没想到》中有王大锤和吉泽明步。这种是多对多的关系。
  • 相关阅读:
    [IOS/翻译]Core Services Layer
    JEval使用实例
    Spring面试总结
    对easyui datagrid进行扩展,当滚动条拉直最下面就异步加载数据。
    虚拟机无法安装64位系统,是否说明硬件不支持?
    zh-cn,zh-tw,en-us,en-gb等网页语言代码一览表
    Python 计算程序运行时间
    美国教授是如何评价中国研究生的
    过来人谈在美国大学里的中国研究生
    javascript 十六进制与RGB颜色值的相互转换
  • 原文地址:https://www.cnblogs.com/work115/p/5942209.html
Copyright © 2011-2022 走看看