0

我在一个项目的规划阶段,我有以下情况:

我有一个具有唯一 ID、名称和附加信息的元素。

每个元素可以有多个父母子女或没有。例如

元素 A 没有父元素和三个子元素 B ,C 和 D (它们都与 A 相同类型)

元素 B 有一个父级(当然是 A)和两个子级 E 和 F。

另一个例子是元素 C 有两个父母 A 和 B 以及零个或多个孩子。

我遇到的唯一要求是我使用数据库,但我可以在 MongoDB 或 Postgresl 之间自由选择。数据经常被读取但不会被改变。

我相信 MongoDB 是更好的解决方案。有什么想法吗?

编辑:根据要求提供更多信息:

我对两者都没有什么经验,所以知识是没有争议的。我们现在谈论的条目少于 1500 个,未来(未来 5 年)条目的数量不会超过 5000 个。

我做了一些研究,发现 sql 的嵌套集和树的 mongoDB 文档,我相信 mongoDb 更方便

4

1 回答 1

0

总的来说,我对 PostgreSQL 和存储树非常满意。 WITH RECURSIVE为您提供了一个很好的遍历和导航框架。使用 MongoDB,您可能会被 map/reduce 困住。

这并不意味着没有一些困难。这些是可以解决的,但可能需要一些努力。最大的是那个WITH RECURSIVE是通常用于进行广度优先搜索。您可以进行深度优先搜索,但这是可能的。请注意,关系数据库针对使用集合进行了高度优化,因此您很少需要深度优先搜索。本质上,您所有的搜索策略都假定一个固定的搜索策略。

图表自然比树更复杂,但是有很多方法可以管理它。

现在,我对 PostgreSQL 的了解比我对 MongoDB 的了解要好得多,但关系系统在查询方面通常比 NoSQL 系统更灵活,我会谨慎地放弃它。

于 2013-10-25T04:26:41.793 回答