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表示关系

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

相关推荐
星栈1 小时前
Rust 单二进制部署,真没你想的那么“单”
前端·后端
SamDeepThinking1 小时前
一个业务场景只需要一个ThreadLocal实例
java·后端·程序员
她的男孩2 小时前
从自然语言到数据大屏:Forge Report Studio 的 AI 生成链路
人工智能·后端·架构
她的男孩2 小时前
大屏动态数据接入:从静态 Mock 到真实业务 API
后端·架构
往上跑山2 小时前
基于 Harness 工程规范的多智能体交互过程实现
后端
武子康3 小时前
Java-12 深入浅出 MyBatis 二级缓存详解:跨 SqlSession 共享与失效机制
java·后端
考虑考虑3 小时前
JDK9中的Set.of()使用注意
java·后端·java ee
我是一颗柠檬3 小时前
【MySQL全面教学】MySQL备份与恢复Day14(2026年)
数据库·后端·mysql
知彼解己3 小时前
RAG 核心实战:检索增强生成
后端·golang·ai编程