Mysql文件夹和文档

时间:2011-10-31 22:09:01

标签: mysql tree

我想拥有每个人都有文件夹的文件夹和文件。文件夹可以有无限的子文件夹。你认为最好的mysql架构是什么。你觉得这很好吗?

Table Folders
  id
  name
  parent (if null the root)
  auth_user (access control type)
  created_date
  created_by

 Table documents
   id
   name
   type
   idFolder (FK id of folders)
   auth_user (access control type)
   created_date
   created_by

您认为以上是好还是以后会有问题?您是否认为使用上述方法可以快速轻松地获取文件夹树(我认为使用ORDER BY父ASC可以使树正确)?

1 个答案:

答案 0 :(得分:2)

邻接列表很适合插入和移动子树,但是如果你需要查询深度超过一个级别,那么a **的痛苦就是因为如果你进入n级深度,你最终会得到n连接。示例:显示文件夹X的所有后代/祖先。

我建议将邻接列表(parent_id)与以下模型之一结合使用:

我非常喜欢嵌套的设置 - 但它有一个缺点 - 插入很慢。但通常你会比插入新节点有更多的读取(浏览)结构。

另一件事:

我通常将文件夹和文档放在同一个表中,并使用布尔is_folder列标记它们。我喜欢将文件夹/文件视为树中的“节点”,因此它们基本相同。更多元数据将存储在另一个表中。