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

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

相关推荐
程序员海军9 分钟前
用了两年多 GPT,我最近开始换模型了,还折腾了个求职避坑 Agent
前端·人工智能·后端
码士集团小青11 分钟前
SpringBoot 集成缓存性能之王 Caffeine
spring boot·后端·缓存
excel2 小时前
IndexNow:让搜索引擎更快发现网站更新的主动通知协议
前端·后端·架构
Json____2 小时前
用 FastAPI + Vue3 打造一套完整的在线考试系统:从组卷到阅卷的业务闭环实践
后端·node.js·fastapi·it学习·wwwoop.com
小灰灰搞电子3 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
专业程序开发源4 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
卷无止境4 小时前
面向arm64桌面客户端开发全景:语言、框架与生态
后端·python
IT_陈寒5 小时前
JavaScript的闭包陷阱,这个坑我躺了三天才爬出来
前端·人工智能·后端
用户8356290780515 小时前
如何使用 Python 对 Excel 数据进行分组和分级显示
后端·python
vx_Biye_Design5 小时前
django房屋租赁推荐系统78455-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·express