sql– 我应该使用什么类型的数据结构来模仿文件系统?

sql– 我应该使用什么类型的数据结构来模仿文件系统?,第1张

概述标题可能措辞奇怪,但可能是因为我甚至不知道我是否在问正确的问题.基本上我正在尝试构建的是一个“breadcrumbish”分类类型系统(如文件目录),其中每个节点都有一个父节点(root除外),每个节点可以包含数据或另一个节点.这将用于组织数据库中的电子邮件地址.我现在有一个系统,你可以创建一个“组”并向该组添加电子邮件地址,但是向它添加组织系统会非常好.这

标题可能措辞奇怪,但可能是因为我甚至不知道我是否在问正确的问题.

基本上我正在尝试构建的是一个“breadcrumbish”分类类型系统(如文件目录),其中每个节点都有一个父节点(root除外),每个节点可以包含数据或另一个节点.这将用于组织数据库中的电子邮件地址.我现在有一个系统,你可以创建一个“组”并向该组添加电子邮件地址,但是向它添加组织系统会非常好.

这(在我的脑海中)是树形式,但我不知道是什么树.

我遇到的问题是使用MySQL构建它.遍历内存中的树很容易,但在数据库中,它有点棘手.

树的形象:http://j.imagehost.org/0917/asdf.png

SELECT * FROM企业:
Tim’s五金店,7-11,Kwik-E-Mart,Cub Foods,Bob’s Grocery Store,CONglom-O

SELECT * FROM Grocery商店:
Cub Foods,CONglom-O

SELECT * FROM Big Grocery Stores:
CONglom-O

SELECT * FROM教堂:
圣彼得教堂,圣约翰教堂

我认为这应该是足够的信息,所以我可以准确地描述我的目标是什么.

最佳答案好吧,你可以使用一些模式.哪一个是正确的取决于您的需求.

您需要选择一个节点及其所有子节点吗?如果是这样,那么Nested set Model (Scroll down to the heading)对你来说可能更好.该表如下所示:

| name     | left | Right || Emails   | 1    | 12    || Business | 2    | 7     || Tim's    | 3    | 4     || 7-11     | 5    | 6     || Churches | 8    | 11    || St. Pete | 9    | 10    |

那么,要在节点下面找到任何东西,就这样做

SELECT name FROM nodes WHERE left > *yourleftnode* AND Right < *yourrightnode*

要查找节点上方的所有内容:

SELECT name FROM nodes WHERE left < *yourleftnode* AND Right > *yourrightnode*

如果您只想查询特定级别,可以执行Adjacency List Model (Scoll down to the heading):

| ID | name     | Parent_ID || 1  | Email    | null      || 2  | Business | 1         || 3  | Tim's    | 2         |

要查找同一级别的所有内容,只需执行以下 *** 作:

SELECT name FROM nodes WHERE parent_ID = *yourparentNode*

当然,没有什么可以阻止你做一个混合方法,它可以让你查询你想要的手头查询

| ID | name     | Parent_ID | left | Right | Path             || 1  | Email    | null      | 1    | 6     | /                || 2  | Business | 1         | 2    | 5     | /Email/          || 3  | Tim's    | 2         | 3    | 4     | /Email/Business/ |

真的,这只是你需要的问题…… 总结

以上是内存溢出为你收集整理的sql – 我应该使用什么类型的数据结构模仿文件系统?全部内容,希望文章能够帮你解决sql – 我应该使用什么类型的数据结构来模仿文件系统?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1168616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存