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

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

相关推荐
geovindu8 小时前
CSharp: LogHelper
开发语言·后端·c#·.net
fliter9 小时前
Go设计取舍之一: goroutine 为什么保持匿名、无状态
后端
fliter9 小时前
Go设计取舍之二: maps.Keys和Values为什么返回迭代器
后端
热心市民lcj9 小时前
Spring Boot 整合 Caffeine 本地缓存实战
spring boot·后端·缓存
Revolution619 小时前
Nest.js 是什么:怎样用它写出第一个后端接口
后端·node.js·nestjs
aiopencode9 小时前
SwiftUI Introspect生产环境完全指南:为什么它是安全可靠的选择
后端·ios
shengjk19 小时前
x86架构发展史:从8086到x86-64,一文看懂40多年CPU指令集如何改变世界
后端
JackSparrow41411 小时前
前端安全之JS混淆+请求加密+请求签名以提升爬虫难度
前端·javascript·后端·爬虫·python·安全
geovindu11 小时前
go:loghelper
开发语言·后端·golang
小满zs11 小时前
Go语言第四章(类型转换)
后端·go