2012-04-22 8 views
5

私はグラフデータベースを使い始めています。私のチームでは、私たちのソフトウェアのグラフをモデリングし始めました。この問題は、データベースの構造を見るためにモデルを「文書化」しようとするときに発生します。 SQLデータベースでは、SQLスキーマを調べるだけで済みます。Neo4j(または他のグラフデータベース)モデリング

我々はのNeo4jブログやドキュメントを読んでいくつかの時間を費やしてきたが、私たちはどのようにグラフの作品を表示する通常の方法は、いくつかのサンプルデータを示す最小限のグラフ(ランダムサンプル:sample1sample2、など)であることを見てきました。それは教育目的には最適ですが、私たちはもう少し正式なやり方でやりたいと思っています。私たちは、どんな種類のノードが別のノードと関係しているのか、どんな種類の関係であれ、そのようなものを設定したいと思います。

春を使ってグラフをクラスでラップすることはできますが、それはJavaとOOモデルに非常に特有なものですが、私たちはErlangで作業しています。私たちは、ある種の正式な言語(SQL Schemaに相当)、またはE-Rモデルと同等のもの、あるいはそのようなものを探しています。

答えて

2

これを行う1つの方法は、グラフの「メタモデル」(タイプネットワーク)をグラフに配置してから、インスタンス(ノード)をメタモデルタイプに接続することです。したがって、グラフの視覚化を使用してメタモデルを視覚化すると同時に、メタモデルを使用して追加の制約を適用することができます(メタモデルに制約情報を格納し、実際のモデルが更新されたときに制約情報を使用する)。このタイプのすべての「インスタンス」ノードに迅速にアクセスするために、メタモデルのタイプノードを使用します。

モデル作成するドメインとは何ですか?

+2

これは単なる一般的なソーシャルネットワークモデル(友人、投稿、投稿への回答、写真など)です。あなたが何を話しているかの例を私に示すことができれば嬉しいです、私はグラフの世界の初心者です。私はあまりにもリレーショナルモデルに固執しています。 :-) –

+1

しかし、そうすることで、@Michael_Hungerは、ある意味でスーパーノードを生成しませんか? – Riduidel

+1

@Riduidelはい –

0

素早いアイデア - UMLのサブセットを使用できますか?グラフモデリングはドメインに近いと思われるので、それは妥当かもしれません。

私たちがやっていることは、関係の両側にカーディナリティーとタイプと方向性を含める "サンプルデータ"アプローチの一般化です。私はしばしば、例のデータではなく、ダイアグラム(あるいはドメインモデルとの関係/他の何らかの仕様)のノード「タイプ」を含みますが、予想されるプロパティ、タイプ、およびオプションであるかどうかに注意してください。それは正式なものではありませんが、これまでのところうまくいきました。

+0

「AはBの友人」の状況より少しリアルなサンプルをリンクしてください。あなたのやり方を解決してください。他の人がどのようにグラフを使って作業しているかを知るためには、私たちにとって大きな助けになるでしょう。 –

関連する問題