gpt4 book ai didi

mysql - 数据库内容无限嵌套

转载 作者:行者123 更新时间:2023-11-29 00:46:33 28 4
gpt4 key购买 nike

我有一些看起来像这样的数据:
1: 事件
2:事件1
3:事件1.1
4:事件2
5:事件2.2
6:事件2.2.1
7:事件2.2.1.1
8:事件2.2.1.2
9:事件2.2.1.3
10:事件2.2.1.3.1
11:事件3
12: 事件 4
13: 事件 4.1

事件 1、2、3 和 4 都将嵌套在“事件”下事件 1.1 将嵌套在事件 1 下等等等等

我应该如何将其存储在数据库的同一个表中?我可以有另一个要包含 ID 的字段吗?

看起来像这样:

Fields:
id (id of event)
name (name of event)
ids_to_include (events that happened within this event)

该(示例)数据嵌套的最多为 4 层 (2.2.1.3.1)。但在我看来,我在考虑历史数据,其中历史上的每个事件都有更多的子事件,因此嵌套需要是无限的。我不想为每个“类型”的历史事件创建一个新表,我只想为长期时期(如 WW2:1939-1945)创建一个表,它没有嵌套,以及事件,它可以根据需要进行尽可能多的嵌套。

还是我的做法完全错误?谢谢。

最佳答案

有一些模型可以在关系表中存储分层数据,其中最常用的两个是嵌套集邻接列表

根据您要针对这些模型运行的查询类型,两者都可能更高效。

MySQL 中,邻接表有点难查询,因为它需要 MySQL 缺少的集合递归,但仍然可行。

关于这两种模型的比较,请参阅我的博客中的这篇文章:

关于mysql - 数据库内容无限嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10335054/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com