zoukankan      html  css  js  c++  java
  • MySQL:多表关系设计(一对多 / 多对多 / 一对一)

    <0> 多表关系概述

      实际开发中,一个项目通常需要很多张表才能完成。

      例如:一个商城项目就需要分类表(category)、 商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系,接下来我们一起 学习一下多表关系设计方面的知识

    表与表之间的三种关系
    一对多关系:最常见的关系:学生对班级 , 员工对部门
    多对多关系:学生与课程 , 用户与角色
    一对一关系:使用较少,因为一对一关系可以合成为一张表

    <1> 一对多关系 (常见)

        例如: 班级和学生, 部门和员工, 客户和订单, 分类和商品

        建表原则: 在从表(多方)创建一个字段, 字段作为外键指向主表(一方)的主键

                 

     <2>多对多关系 (常见)

        例如:老师和学生, 学生和课程, 用户和角色

        建表原则: 需要创建第三行表,中间表中至少有两个字段,这两个字段分别作为外键,指向各自一方的主键

        

    <3>  一对一关系(了解)

        在实际开发中应用不多,因为一对一可以创建成一张表

        建表原则: 外键唯一, 主表的主键和从表的唯一外键,形成主外键关系, 外键唯一用UNIQUE修饰

        

  • 相关阅读:
    js获取当前日期
    Mysql错误1452
    数字输入框禁止输入字母
    laravel关联外键报错
    golang for range channel
    golang实现简单哈希表(拉链法解决冲突)
    K个一组反转链表(golang)
    golang 少见的语法问题(无用)
    golang实现循环队列
    数组中连续序列和最大值(循环数组)
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/15016567.html
Copyright © 2011-2022 走看看