zoukankan      html  css  js  c++  java
  • 外键(FOREIGN KEY)

    外键(FOREIGN KEY)

    引子:把所有数据都存放于一张表的弊端

        1、表的组织结构复杂不清晰
        2、浪费空间
        3、扩展性极差

    为了解决上述的问题,就需要用多张表来存放数据。

    表与表的记录之间存在着三种关系:一对多、多对多、一对一的关系。

    处理表之间关系问题就会利用到FOREIGN KEY

    多对一关系:

    寻找表与表之间的关系的套路
        举例:雇员表:emp表   部门:dep表
            part1:
            1、先站在表emp的角度
            2、去找表emp的多条记录能否对应表dep的一条记录。
            3、翻译2的意义:
                左表emp的多条记录==》多个员工
                右表dep的一条记录==》一个部门
                最终翻译结果:多个员工是否可以属于一个部门?
                如果是则需要进行part2的流程

            part2:
            1、站在表dep的角度
            2、去找表dep的多条记录能否对应表emp的一条记录
            3、翻译2的意义:
                右表dep的多条记录==》多个部门
                左表emp的一条记录==》一个员工

                最终翻译结果:多个部门是否可以包含同一个员工
                如果不可以,则可以确定emp与dep的关系只一个单向的多对一
                如何实现?
                此时就可以用到外键了,在emp表中新增一个dep_id字段,该字段指向dep表的id字段

    foreign key会带来什么样的效果?
    约束1:在创建表时,先建被关联的表dep,才能建关联表emp

  • 相关阅读:
    [0] 需求管理工具CaliberRM
    [0] 自动化测试工具QTP
    [0] UML建模工具(StarUML)
    [0] C# 扩展方法(Extension Method)
    [0] 统一软件过程(RUP)
    [0] XP敏捷开发
    关于ES6的let,const与var之间的三生三世
    lumen手记:自定义Validate表单验证
    window下python安装pip,切换为国内阿里云镜像
    Lumen开发:简单实现auth用户认证
  • 原文地址:https://www.cnblogs.com/cao123/p/9647851.html
Copyright © 2011-2022 走看看