【问题标题】:Representing a DAG (directed acyclic graph)表示 DAG(有向无环图)
【发布时间】:2010-10-10 01:36:59
【问题描述】:

我需要将依赖项存储在 DAG 中。 (我们正在细粒度地规划新的学校课程)

我们正在使用 rails 3

注意事项

  • 宽大于深
  • 非常大
  • 我估计每个节点有 5-10 个链接。随着系统的发展,这将增加。
  • 读取次数多,写入次数少
  • 最常见的是查找:
    • 一级和二级依赖关系
    • 搜索/验证依赖项

我知道 SQL,我会考虑 NoSQL。

寻找对实现选项进行良好比较的指针。

也对我们可以快速开始的东西感兴趣,但以后过渡到更强大/可扩展的东西会不会那么痛苦。

【问题讨论】:

    标签: sql ruby-on-rails-3 nosql directed-acyclic-graphs


    【解决方案1】:

    我发现了这个在 SQL 中建模有向无环图的示例:

    http://www.codeproject.com/KB/database/Modeling_DAGs_on_SQL_DBs.aspx?msg=3051183

    【讨论】:

      【解决方案2】:

      我认为用于图形数据库Neo4jRuby bindings 即将推出的版本(目前是测试版)应该很合适。它适用于 Rails 3。底层数据模型使用节点和定向关系/边,两者都具有键/值样式属性。为了扩展以读取为主的架构,Neo4j 使用master/slave replication 设置。

      【讨论】:

      • 用 SQL 起步很快,但对 Neo4j 的关注度很高,几个月后会迁移到它
      【解决方案3】:

      您可以使用OrientDB 作为图形数据库。它针对关系进行了高度优化,因为存储为链接而不是 JOIN。加载具有 1000 个顶点的双向图需要几毫秒。

      Rails 的语言绑定尚不可用,但您可以将其与 HTTP RESTful 调用一起使用。

      【讨论】:

        【解决方案4】:

        您可能想看看 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

        【讨论】:

          猜你喜欢
          • 2011-09-17
          • 2012-04-11
          • 2021-09-30
          • 2013-05-14
          • 2010-10-25
          • 1970-01-01
          • 1970-01-01
          • 2021-11-15
          • 1970-01-01
          相关资源
          最近更新 更多