gpt4 book ai didi

mysql - 关系数据库中的建模层次结构/目录

转载 作者:行者123 更新时间:2023-11-29 04:28:22 25 4
gpt4 key购买 nike

我想在 mysql 表中建模层次结构/目录,如下所示。您可以在我正在考虑的表格架构下方看到。但是,我所说的目录将由 100.000 个元素组成,深度约为 5-10 级。此外,我们将有一个标签池,目录的每个元素都可以链接到一个或多个标签。所以我想知道是否有更好的方法。我读到一些人决定设计非规范的表以摆脱高性能的影响,我也在评估这种情况。

ps:有些人使用多路树在编程语言级别对此进行建模,因此这个问题如何在数据库中结束仍然存在。

hierarchy:
A
| -> 1
|->1
|->2
| -> 2
| -> 3
B
| -> 1
| -> 2

table:
___________________________
| id |element | father |
|---------------------------|
| 000 | A | null |
| 001 | 1 | 000 |
| 002 | 1 | 001 |
| 003 | 2 | 001 |
| 004 | 2 | 000 |
| 005 | 3 | 000 |
| 006 | B | null |
| 001 | 1 | 006 |
| 002 | 2 | 006 |
-----------------------------

最佳答案

一个非常快的层次树是嵌套集或 Celko 树,它有点像二叉树,或者当你有 MySQL 存储引擎时是霍夫曼树。缺点是昂贵的删除和插入。其他 RDBMS 也支持递归查询。总的来说,我没有看到很多嵌套集。创建和维护似乎也很复杂。当嵌套集过于复杂且 RDBMS 不支持递归查询时,还有物化路径。

  1. http://www.ibase.ru/devinfo/DBMSTrees/sqltrees.html
  2. http://en.wikipedia.org/wiki/Binary_tree
  3. http://en.wikipedia.org/wiki/Huffman_coding
  4. http://www.postgresql.org/docs/8.4/static/queries-with.html
  5. Is it possible to make a recursive SQL query?
  6. http://www.cybertec.at/pgbook/node122.html

关于mysql - 关系数据库中的建模层次结构/目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6859412/

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