zoukankan      html  css  js  c++  java
  • day05-表的三种关系

    表的三种关系

    1)一对一

    关联方式:foreign key+unique
    例如1个学生只能有1个学号,1个学号只能对应1个学生

    #两张表: 学生表(student)和 学号表(student_id)
    # 创建学生表
    create table student(
        id int primary key auto_increment,
        name varchar(20)
    );
    # 创建学号表
    create table student_id(
        id int primary key auto_increment,
        url varchar(100),
        user_id int unique,
        constraint fk_student foreign key(id) references student(id)
        on delete cascade
        on update cascade

    2)一对多(或多对一)

    关联方式:foreign key
    例如书和出版社和关系,一个出版社可以出版多本书。

    #创建出版社表
    create table book_concern(
        id int primary key auto_increment,
        name varchar(20)
    );
    #创建图书表
    create table book(
        id int primary key auto_increment,
        name varchar(20),
        book_concern_id int not null,
        constraint fk_book_concern foreign key(id) references book_concern(id)
        on delete cascade
        on update cascade
    );

    3)多对多

    关联方式:foreign key+一张新的表
    例如作者和书籍的关系,一个作者可以写多本书,一本书也可以有多个作者,双向的一对多,即多对多。

    # 创建被关联表author表,之前的book表在讲多对一的关系已创建
    create table author(
        id int primary key auto_increment,
        name varchar(20)
    );
    
    #创建一张新的表,这张表存放了author表和book表的关系,查询二者的关系只需查这张表就可以了
    create table author2book(
        id int not null unique auto_increment,
        author_id int not null,
        book_id int not null,
        constraint fk_author foreign key(author_id) references author(id)
        on delete cascade
        on update cascade,
        constraint fk_book foreign key(book_id) references book(id)
        on delete cascade
        on update cascade,
        primary key(author_id,book_id)
    );
  • 相关阅读:
    P3478 [POI2008]STA-Station
    P2015 二叉苹果树
    P2014 选课 (树型背包模版)
    求树的每个子树的重心
    求树的直径
    Javascript--防抖与节流
    JavaScript中call和apply的区别
    解决谷歌浏览器“此Flash Player与您的地区不相容,请重新安装Flash”问题(最新版)
    matlab实验代码(总)
    表达式树
  • 原文地址:https://www.cnblogs.com/dxnui119/p/10167076.html
Copyright © 2011-2022 走看看