MySQL层级表及表关系

层级表

  • 闭包模型
md 复制代码
电子数码(id=1)
    手机通讯(id=2)
        智能手机(id=3)
        老人机(id=4)
    电脑办公(id=5)
sql 复制代码
create table Students(
       id int notnull
       uname varchar(1000) not null
)

这个专门存储节点信息,特别是深度层级(这个表主要表达层级关系的)

sql 复制代码
create table node(
    father_id int not null
    son_id  int not null
    depth int
)

这个sql语句的意思是将id为1的电子数码设置为顶级的祖先id

sql 复制代码
insert into node(father_id,son_id,depth) value
(1,1,0)
  • 邻接列表模型
md 复制代码
电子数码(id=1)
    手机通讯(id=2,parent_id=1)
        智能手机(id=3,parent_id=2)
        老人机(id=4,parent_id=2)
    电脑办公(id=5,parent_id=1)
  • 主要体现在parent_id这个字段
sql 复制代码
create table Students (
    id int not null
    uname varchar(1000) not null
    parent_id int not null
)
  • 其他的表关系

多对多关系---通常需要一个中间表

一对一关系---通常关联的表需要一个字段与主表的id对应,其中unique表示关系

多对一关系---通常需要一个字段进行关联

相关推荐
蜗牛互联网7 小时前
WSL Containers GA:本地AI容器的生命周期、网络与治理验收
java·网络·人工智能·后端
Zhou1411368 小时前
SpringBoot_02_自动配置原理
java·spring boot·后端
子兮曰9 小时前
Node.js 50个优势场景盘点:一个人单干,为啥我多数时候只用它
前端·后端
IT_陈寒9 小时前
我花3小时debug,就因为JavaScript这个隐式转换坑
前端·人工智能·后端
程序猿阿越9 小时前
containerd如何拉取镜像
后端·kubernetes·源码阅读
一条小小yu10 小时前
为什么使用springboot
java·spring boot·后端
香瓜子rd10 小时前
MySQL InnoDB 并发控制核心原理:事务、隔离级别、MVCC 与锁机制
数据库·后端
RISCV_Explorer10 小时前
RISC-V RVV向量编程模型机制解析——vsetvl配置、掩码与尾元素策略及长度无关编程
后端·risc-v
对象存储与RustFS10 小时前
升级 RustFS 二进制不停机:一条一条换,留一条退路
后端·rust·开源
hasty10 小时前
限制写了却没生效:OpenTelemetry Go 的 Unicode 截断边界
开发语言·后端·golang