表与表之间的关系

14 篇文章 0 订阅
表与表之间的关系

可以分成三类:

  • 一对一的关系:一般情况下,一对一的关系基本不用,当发现两张表是一对一的关系,合成一张表,例如:人和身份证号,学生和学生证号

  • 一对多的关系:在表关系中是最多的情况,也是最常见的,比如:部门和员工

  • 多对多:从两个方向观察发现都是1-n关系,比如:学生表和课程表, 企业和应聘者 双选会

  • 操作:

    ​ 学生表、课程表 多对多关系
    ​ 用户表 、角色表 一对多关系

    -- 创建学生表
    drop table student;
    create table student(
    		
    		s_id int PRIMARY key auto_increment, -- 主键约束
        s_name VARCHAR(10) not null, -- 非空约束
    		s_num int unique not null -- 唯一约束,非空约束
    
    );
    -- 创建课程表
    drop table course;
    create table course (
         
        c_id int PRIMARY key auto_increment COMMENT '课程id', -- 主键约束  
    		c_name VARCHAR(10) not null unique COMMENT '课程名称' -- 唯一 非空约束
    );
    
    -- 中间表
    create table t_stu_cour (
        
         s_id int,
         c_id int,
    
         CONSTRAINT stu_id foreign key(s_id) REFERENCES student(s_id),
         CONSTRAINT cour_id foreign key(c_id) REFERENCES course(c_id)
    );
    
    -- 创建用户表
    drop table user;
    create table user (
    
      u_id int PRIMARY key auto_increment COMMENT '用户表主键id', -- 主键约束
      u_name VARCHAR(10) not null, -- 非空约束
      u_phone VARCHAR(11) unique, -- 唯一约束
      u_rid int, -- 需要添加的外键信息
      CONSTRAINT user_rid FOREIGN key(u_rid) REFERENCES role(r_id) 
    );
    -- 创建角色表
    drop table role;
    create table role (
    
       r_id int PRIMARY key auto_increment COMMENT '角色表主键id', -- 主键约束
       r_name VARCHAR(10) not null UNIQUE, -- 唯一约束 非空约束
       r_desc VARCHAR(255) 
    )
    -- 如果两张表是一对多关系 设计创建时,先创建主表,再创建从表
    
  • 表与表之间关系总结

    表之间关系关系维护、创建
    一对一合表,互为外键约束,表之间关系很少
    一对多在从表(多的那一方)的那一方创建外键,关联主表的主键字段,先创建主表,再创建从表
    多对多创建中间表,中间表分别添加外键约束关联各自对应的的主键
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值