软件来存储分层数据

软件来存储分层数据,第1张

概述软件来存储分层数据

我正在寻找[免费]服务器软件来有效地存储分层数据。 我的关键挑战是一个对象或一组对象几乎总是有2个“父母”,父母一方或双方可以与其他父母有不同的联系,而这些后代必须与共同父母的其他后代不同。

例:

A and B C D E and F G H E and I J K L and M ...

我想这个问题可能是因为我非常喜欢用这个PHP,但是我愿意学习一门新的语言,因为这是一个没有截止date的个人项目。 (我正在使用linux服务器;我不想改变这一点)

编辑:澄清我的例子 – C,D和E都是A和B的直系后代,F和I是其他事物的后代,可能是同一事物,可能不是,G和K都是E和E的直系后代F等

'/usr/include/c++/4.4/bits/'中的位有什么意义

最快的方法是创build1000个文件夹,并将文件放入最后一个文件夹中

我不确定这是否正是您正在寻找的内容,但您可以使用Graphviz点来模型/图表关系。 以下是.dot文件的更新内容,更像是您的说明:

digraph G { compound = true // allow edges between clusters subgraph cluster_ab { rank = same; A -> B -> A } A -> C [ltail=cluster_ab] A -> D [ltail=cluster_ab] A -> E [ltail=cluster_ab] subgraph cluster_ef { rank = same; E -> F -> E } E -> G [ltail=cluster_ef] E -> H [ltail=cluster_ef] subgraph cluster_ei { E -> I -> E } I -> J [ltail=cluster_ei] I -> K [ltail=cluster_ei] }

样点输出http://img21.imagesHack.us/img21/6177/64094067.png

这个有点不同,因为你不能创建重叠的集群(E-> I和E-> F)。 但我认为这更像你已经澄清的方式,尽管E和我是兄弟姐妹不是很明显 – 我也必须确保从I到J,K的联系,否则有一个警告和它看起来有点丑陋。

有很多库与Graphviz / dot接口 ,可以让你动态地生成这些图形,而不是像我一样手动生成这些图形。 那么,如果你已经有一个库来存储/检索定向图,那么你几乎可以存储分层数据。 至于它是否有效率 ,正如你在你的问题中提到的那样…取决于你存储的数据量,当然。

正如@Kim在评论中指出的那样,通过将兄弟对象视为对而不是单个节点,可以得到一个相当简化的图:

digraph G { "A,B" -> C "A,B" -> D "A,B" -> E "E,F" -> G "E,F" -> H "E,I" -> J "E,I" -> K }

这是一个明显而优雅的解决方案,我完全忽略了这一点,虽然在重叠发生时,兄弟姐妹关系仍然有点模棱两可(E再次)。

更简单的图表http://img35.imagesHack.us/img35/8969/so2b.png

我认为应该更容易编写自己的PHP类,这将更适合您的需求。 也许这样(伪代码)

Class Item [List of Item] Parents [List of Item] Children

面临的挑战是编写管理/构建完整结构的方法。 坚持的水平NB应该帮助你的情况很多。 您已经有关于将分层结构保存到数据库中的相关问题 。

总结

以上是内存溢出为你收集整理的软件来存储分层数据全部内容,希望文章能够帮你解决软件来存储分层数据所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/langs/1293817.html

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

发表评论

登录后才能评论

评论列表(0条)

保存