グラフデータベース内でルックアップ/参照テーブルをモデル化/表現するにはどうすればよいですか?
特定のケース:マスター変換テーブル(多くのコアテーブルの参照データが含まれています)。
コアテーブルにマージする必要がありますか? RDBMS representationグラフデータベース内のルックアップ/参照テーブル
0
A
答えて
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とグラフデータベースの両方で動作する場合)にもコード/記述を保存することができます。 –
関連する問題
- 1. ルックアップ/参照テーブルを新しいスキーマに移動する
- 2. テーブルと参照テーブルの参照
- 3. Excel - 参照内の参照
- 4. テーブル内のテーブル内部からのルア参照関数
- 5. スフィンクステーブル参照テーブル
- 6. テーブルを参照するSQL参照テーブルの値
- 7. ROW()参照内の動的セル参照
- 8. Doctrine 2.1参照テーブル
- 9. infomatica未接続のルックアップの無効なシンボル参照エラー
- 10. SSIS別のテーブルの参照
- 11. 他のテーブルの参照値
- 12. ノード内の参照?
- 13. Springのアプリケーションドロップダウン/ルックアップ/参照データを読み込む推奨メソッド
- 14. ルックアップを使用したExcelの相互参照
- 15. 参照テーブルのSQL制約
- 16. のOracle SQL - 参照テーブル
- 17. PSQLのテーブル名を参照
- 18. MemSQLのGORM参照テーブル
- 19. テーブル式の絶対参照
- 20. sqliteデータベース内のテーブルへの2つの参照アンドロイド
- 21. 行を削除した後のテーブル内のシフトインデックスの参照
- 22. Doctrineで参照/参照テーブルへの結合を避ける2
- 23. 参照フィールド/通貨および数量フィールドの参照テーブル
- 24. テーブル内のフィールドが空白の場合参照なし
- 25. テーブル内の外部キーを参照するときのエラー
- 26. テーブル内の参照の名前を表示する方法AspNetUsers
- 27. テーブル内のすべての「参照」カラムを返すPostgreSQLクエリ
- 28. HABTM参照テーブル内の複数のオブジェクトを削除する
- 29. PDF外部参照テーブル
- 30. SQl参照テーブル - 動的列
もっと具体的な例がありますか?グラフデータベースにはテーブルの概念はありません。 – InverseFalcon
現在のRDBMS表現のイメージを投稿に追加しました。
解決策の1つは、コードの翻訳(「コアタブ2」({col2: 'NY'、col2_description: 'New York'}))の翻訳を含む別の属性をノードごとに作成することです。
別の解決方法は、コードの説明を別のテーブルに保存し、必要なときに毎回翻訳するためにいくつかの機能を使用することです。 –