2011-05-16 45 views
3

我需要我的系統:
1)朋友 - 需要計算用戶之間的距離達到N度,找到用戶之間的工作相關的常用項目。無法很好地擴展這個onmysql。所以我假設的選擇是一個Graph數據庫?文檔和圖形數據庫選擇

2)我有用戶配置文件字段,大約有120個字段,其中80%是1:M字段,所以在mysql中這意味着大約96個表來存儲1:M。如果我需要拉所有用戶信息,那麼我需要到達所有這些表。那麼這裏的解決方案是文檔數據庫,colunm數據庫還是鍵值數據庫?

目前我已經看到OrientDB可以作爲一個文檔和圖形數據庫。這可以用於上述需求還是有更好的數據庫選項呢?

謝謝。

編輯: 要求配置文件是用戶字段:IT是職業社交網絡,所以很多portfolia像字段是1:M。所以如果有120個領域,其中96個是1:M如何最好地存儲它? Exqample是您工作過的公司。你在學校學習。你讀過的雜誌。你寫的文章等等。每個文件都是1:M,並且有96個字段,例如= 96個Mysql表格。我無法合併,因爲其中一些具有獨特的元數據。我需要在字段上搜索,並允許快速閱讀,以保持用戶體驗良好。

對於圖表:它是關於連接人。對於發佈,我只使用了一個功能,那就是當你看到某人時,系統會說出你與該人分離的程度。 「社交」功能的其餘部分用於發佈後。在MySQL中,我無法做到這一點,足以擴展。如果我有100個朋友,每個人都是100個朋友,那麼如何最好地找到我的這些人的方式,我假設一個圖形數據庫。

平臺是codeignitor PHP/Mysql核心數據庫。

回答

1

計算節點之間的距離聽起來很像圖形數據庫。 OrientDB看起來很不錯,我個人玩過Neo4j,你可以看看。

要給出明確的答案,您將不得不提供更多的要求。

+1

增加了更多信息。 – Pinto90 2011-05-16 19:28:30

0

聽起來像RDF數據庫 - AKA三重商店的一個很棒的場景。如果你的數據是關於人們的連接......你爲什麼不用RDF中的FOAF詞彙表進行建模。然後你可以使用許多三重商店之一。如果你需要的可擴展性,我建議4store - 用C編寫的4store分佈式RDF數據庫將在集羣分配數據,你就可以用SPARQL

絕對的選項進行查詢你的情況考慮。