0

これは、グラフ データベースの設計に関するより一般的な質問であり、私の質問に適切なタイトルが見つかりませんでした。

生産者 A と生産者 B がいて、どちらもリンゴを生産しています。私は彼らからこれらのリンゴを購入しますが、A からはわずか 10,000、B からは 20,000 です。購入したリンゴの量を (リレーション属性ではなく) ノードとして取得したい場合、グラフ データベースでこれを描画する方法は?

私が想像できる限り、「生産者」タイプのノードが 2 つ、「良い」タイプのノードが 1 つ、「購入金額」タイプのノードが 2 つあるとします。さらに、「生成する」と「生成される必要がある」という 2 種類の関係があります。(関係のタイトルが合っているかどうかはわかりません)。

ここに図があります: http://img198.imageshack.us/img198/3964/4klk.png

ここでの問題は、生産者 A または B が私のために 10,000 個のリンゴを生産する必要があるかどうかをどこから知ることができるかということです。

提案や変更は自由ですが、リンゴの生産量をノードとして維持したいと思います。

ありがとう!

4

2 に答える 2

0

以下は私がモデル化した方法です。ここで、テスト データとサンプル クエリをセットアップしました。

さまざまな生産者から購入された特定の商品の量

MATCH t:Transaction-[:FOR]->g:Goods, t-[:FROM]->producer WHERE g.type='Apples' RETURN producer, t.quantity, t.month+"-"+t.year AS Date

出力

ここに画像の説明を入力

デザイン

ノード:商品(種類)、取引(数量、日付(月、年))、生産者(名前)

関係:トランザクションは特定の商品に対するものであり、購入が特定の生産者からのものであることを示します

設定

CREATE (producerA:Producer {name:'A'})
CREATE (producerB:Producer {name:'B'})
CREATE (apples:Goods {type:'Apples'})
CREATE producerA-[:PRODUCES]->apples
CREATE producerB-[:PRODUCES]->apples
CREATE (trans1:Transaction {month:'08', year:'2014', quantity:'10000'})-[:FOR]->apples
CREATE trans1-[:FROM]->producerA
CREATE (trans2:Transaction {month:'08', year:'2014', quantity:'20000'})-[:FOR]->apples
CREATE trans2-[:FROM]->producerB
于 2013-09-15T23:34:08.860 に答える