首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对关系数据库中的层次结构/目录进行建模

对关系数据库中的层次结构/目录进行建模
EN

Stack Overflow用户
提问于 2011-07-28 13:04:30
回答 1查看 2.1K关注 0票数 2

我想在mysql表中建模一个层次结构/目录,如下所示。您可以在表中看到我正在思考的模式。然而,我所说的目录将由100.000个元素组成,深度为5-10级。此外,我们将有一个标记池,目录中的每个元素都可以链接到一个或多个标记。所以我想知道是否有更好的方法。我读到,有些人决定设计不规范的高性能震动表,我也在评估这个案例。

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

代码语言:javascript
复制
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   |
-----------------------------
EN

回答 1

Stack Overflow用户

发布于 2011-07-28 13:11:39

一个非常快的等级树是一个嵌套的集合或一个凯子树,当你有一个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
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6859412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档