2013-05-28 15 views
2

我正在構建一個簡單的twitter圖表,並且正在與其他團隊成員討論如何實現它。構建一個twitter用戶db

我認爲A選項是最好的,因爲性能和簡單性,但其他成員(項目負責人特別喜歡C)由於對平臺缺乏經驗而不相信。

我從來沒有在生產應用中使用圖表,所以當PL開始將它與C選項進行比較時,我沒有強烈的論點。

所以我問你根據你的經驗選擇哪一個選項?

元素:

  • Twitterusers
  • 解釋
  • 興趣

A)的Neo4j圖表

節點:

  • twitteruser
  • 列表
  • 興趣

關係:

  • 如下(用戶1,用戶2)
  • MEMBER_OF(用戶列表)
  • interested_in(用戶,利息)

B)相同的圖表,但分成較小的圖表以提高性能。

C)簡單的neo4j圖形和查詢數據的關係數據庫。

.graph:

節點:

  • twitteruser

關係:

  • 相似(用戶1,用戶2)

。關係db:A的節點將轉換爲表,並且關係將通過多對多關鍵字完成。

回答

5

從你所描述的我個人看不出任何選項B和C的原因。你描述的場景看起來對於圖形數據庫來說非常適合Neo4j。

如果您選擇選項C,您將擁有大量只能在兩個數據庫之間進行id轉換和同步的代碼。你最好有一個很好的理由來使用這樣的兩家商店。

+0

PM想要考慮選項C的原因是因爲性能。他認爲這是一個更好的選擇。我必須找到一種方法來說服他,他錯了。 – Rod0n

+2

也許我錯過了你項目的一些細節,但通常你會通過用Neo4j中的邊代替多對多關係數據來獲得重要的性能增益。這是存儲關係時使用圖形數據庫的主要原因之一。 – RaduK