15

依存関係を DAG に保存する必要があります。(私たちは非常に細かいレベルで新しい学校のカリキュラムをマッピングしています)

Rails3を使用しています

考慮事項

  • 深いよりも広い
  • 非常に大きい
  • ノードあたり 5 ~ 10 リンクと見積もっています。システムが成長するにつれて、これは増加します。
  • 多くの読み取り、少数の書き込み
  • 最も一般的なのはルックアップです。
    • 1度と2度の従属関係
    • 依存関係の検索/検証

私は SQL を知っています。NoSQL を検討します。

実装オプションの適切な比較へのポインタを探しています。

また、迅速に開始できるものに興味がありますが、後でより堅牢でスケーラブルなものに移行するのが苦痛ではありません。

4

4 に答える 4

13

SQL で有向非巡回グラフをモデル化する次の例を見つけました。

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

于 2010-12-08T06:17:43.347 に答える
5

グラフ データベースNeo4j用のRuby バインディングの次期バージョン (現時点ではベータ版) がぴったりだと思います。これは、Rails 3 で使用するためのものです。基礎となるデータ モデルは、ノードと、キー/値のスタイル属性を持つ有向リレーションシップ/エッジを両方に使用します。読み取りがほとんどのアーキテクチャをスケーリングするために、Neo4j はマスター/スレーブ レプリケーションセットアップを使用します。

于 2010-10-10T08:41:41.967 に答える
4

OrientDBをグラフ データベースとして使用できます。結合ではなくリンクとして保存されるため、リレーションシップ用に高度に最適化されています。1,000 個の頂点を持つ双方向グラフの読み込みには、数ミリ秒かかります。

Rails の言語バインディングはまだ利用できませんが、HTTP RESTful 呼び出しで使用できます。

于 2010-10-13T16:14:17.370 に答える
1

act_as_dag ジェムを見てみたいと思うかもしれません。

https://github.com/resgraph/acts-as-dag

また、これに関するバックグラウンドが必要な人のために、SQL を使用した Dag に関するいくつかの優れた記事もあります。

http://www.codeproject.com/Articles/22824/A-Model-to-Represent-Directed-Acyclic-Graphs-DAG-o

于 2013-04-28T02:04:23.110 に答える