我需要将依赖项存储在 DAG 中。(我们正在细粒度地绘制新的学校课程)
我们正在使用 Rails 3
注意事项
- 比深更宽
- 很大
- 我估计每个节点有 5-10 个链接。随着系统的发展,这将增加。
- 多读少写
- 最常见的是查找:
- 一级和二级依赖
- 搜索/验证依赖关系
我知道 SQL,我会考虑 NoSQL。
寻找指向实现选项的良好比较的指针。
也对我们可以快速开始的东西感兴趣,但以后过渡到更健壮/可扩展的东西会不那么痛苦。
我需要将依赖项存储在 DAG 中。(我们正在细粒度地绘制新的学校课程)
我们正在使用 Rails 3
注意事项
我知道 SQL,我会考虑 NoSQL。
寻找指向实现选项的良好比较的指针。
也对我们可以快速开始的东西感兴趣,但以后过渡到更健壮/可扩展的东西会不那么痛苦。
我发现了这个在 SQL 中建模有向无环图的例子:
http://www.codeproject.com/KB/database/Modeling_DAGs_on_SQL_DBs.aspx?msg=3051183
您可以使用OrientDB作为图形数据库。它针对关系进行了高度优化,因为存储为链接而不是 JOIN。加载具有 1,000 个顶点的双向图需要几毫秒。
Rails 的语言绑定尚不可用,但您可以将它与 HTTP RESTful 调用一起使用。
您可能想看看 act_as_dag gem。
https://github.com/resgraph/acts-as-dag
对于可能需要这方面背景的人来说,还有一些关于 Dags with SQL 的好文章。
http://www.codeproject.com/Articles/22824/A-Model-to-Represent-Directed-Acyclic-Graphs-DAG-o