2017-12-21 8 views
0

グラフデータベース内でルックアップ/参照テーブルをモデル化/表現するにはどうすればよいですか?
特定のケース:マスター変換テーブル(多くのコアテーブルの参照データが含まれています)。
コアテーブルにマージする必要がありますか? RDBMS representationグラフデータベース内のルックアップ/参照テーブル

+1

もっと具体的な例がありますか?グラフデータベースにはテーブルの概念はありません。 – InverseFalcon

+0

現在のRDBMS表現のイメージを投稿に追加しました。
解決策の1つは、コードの翻訳(「コアタブ2」({col2: 'NY'、col2_description: 'New York'}))の翻訳を含む別の属性をノードごとに作成することです。
別の解決方法は、コードの説明を別のテーブルに保存し、必要なときに毎回翻訳するためにいくつかの機能を使用することです。 –

答えて

0

ノードだけでモデル化できます。以下のような何か:

CREATE (:Translation{code:'SLD', description:'some lengthy description'}) 
CREATE (:Translation{code:'NY', description:'New York'}) 
CREATE (:Translation{code:'USA', description:'United States'}) 
CREATE (:Address{address:'123 Street St', state:'NY', country:'USA'}) 

そしておそらく使用のためのようなもの:言っ

MATCH (p:Person)-[:LIVES_AT]->(a:Address) 
WHERE id(p) = 101 
OPTIONAL MATCH (state:Translation{code:a.state}) 
OPTIONAL MATCH (country:Translation{code:a.country}) 
RETURN a.address as address, state.description as state, country.description as country 

、私はグラフデータベースは、これらのやや時代遅れの必要性を作ると思います。同じ値が繰り返し使用されるため、これらを使用する理由はスペースを節約するためです.RDBMSでは、長い記述を1つの場所に保持するだけです。あなたは、自身のノードに値を抽出し、このように、それに関係を作成する必要があります示唆しているようだグラフと

CREATE (ny:State{code:'NY', name:'New York'}) 
CREATE (usa:Country{code:'USA', name:'United States}) 
CREATE (a:Address{address:'123 Street St'}) 
CREATE (a)-[:IN_STATE]->(ny) // or a more generic :IN if desired 
CREATE (a)-[:IN_COUNTRY]->(usa) // or a more generic :IN if desired 

クエリが、その後になる:

MATCH (p:Person)-[:LIVES_AT]->(a:Address) 
OPTIONAL MATCH (a)-[:IN_STATE]->(state) 
OPTIONAL MATCH (a)-[:IN_COUNTRY]->(country) 
RETURN a.address as address, state.name as state, country.name as country 

これは非常によく似ていることに注意してください。ロングカントリーの名前はまだ1つの場所に保存されています。実際の違いは、特定のラベルを持つノードとおそらくより特定のプロパティキーを扱うためのコンテキストと、これらのノードとの関係をデータモデルの一部とすることです。別のノードで検索します(たとえば、ブラウザでCALL db.schema()を試してみてください)。

State(コード)と:Country(コード)にインデックスを追加すると、これによりコードでアドレスを参照しやすくなります。

+0

ありがとう!これは、特にあなたの例のような場合には意味があります。注:別のノードを作成することで、コアレコードにそのような値がない場合(RDBMSとグラフデータベースの両方で動作する場合)にもコード/記述を保存することができます。 –

関連する問題