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

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

相关推荐
To_OC3 小时前
跑了3个Docker容器后,我终于搞懂镜像和容器到底啥关系
后端·docker·容器
东风破_3 小时前
Docker 基础:为什么需要容器?
前端·后端·nginx
东风破_4 小时前
Docker 实战:使用 Nginx 作为容器入口代理 Node 服务
前端·后端·nginx
Lyyaoo.4 小时前
Spring Boot Validation 声明式参数校验
spring boot·后端·mysql
剩下了什么4 小时前
float32 与 float64 精度陷阱:如何在 Go 中避免错误使用
开发语言·后端·golang
Rain的Java大神之路4 小时前
介绍一下分布式事务
java·分布式·后端·spring·spring cloud·架构·springcloud
IT_陈寒8 小时前
Vue的响应式什么时候会失灵?这个坑我踩了
前端·人工智能·后端
Patrick_Wilson9 小时前
Web 认证方案技术指南
前端·后端·面试
与驴OO9 小时前
设计 Skill 系统,这 3 个坑我替你踩过了
后端·aigc
爱勇宝10 小时前
客户只想看个页面,我却做了一个静态演示发布系统
前端·javascript·后端