2011-06-11 99 views
1

對於Scala編寫的應用程序我正在尋找下列要求「最好的」數據庫系統正確的數據庫系統:對於一個節點發現所有連接:像查詢請告訴我這個

  • 的良好支持節點,通過與價值「someValue中」另一個節點連接的所有節點
  • 可作爲$ 0爲數據
  • 良好的社會支持和文檔

回答

4

最可能的是Y的低容量的雲服務ou試圖在您的數據庫上存儲

有圖形數據庫特別創建用於存儲節點和連接節點與頂點(在您的條款,價值觀)。 http://en.wikipedia.org/wiki/Graph_database#Graph_database_projects

恐怕雲中沒有免費的選擇。您應該購買VPS,Amazon EC2實例,Windows Azure實例或任何東西來託管您的數據庫。現在沒有什麼可以免費的。

在圖形數據庫中,我的選擇是neo4j,它有一個很好的支持,文檔和社區,它特別設計用於Java(和Scala,當然)。不過,我聽說orientdbvertexdb也是很好的。

+1

個人而言,我會去OrientDB。 – Palesz 2012-03-07 16:19:51

2

像查詢的良好支持:對於一個節點發現所有連接的節點,通過與價值「someValue中」 良好的社會支持和文檔另一節點連接的所有節點

Postgres是相當充足的,如果你只需要在鄰域內找到節點,因爲它支持recursive queries

假設你的nodes (id, parent_id, col)一個面向圖形,這允許寫:

with rec_nodes as (
select id, 
     col, 
     1 as depth 
from nodes 
where parent_id = :id 
union all 
select nodes.id, 
     nodes.col, 
     rec_nodes.depth + 1 as depth 
from nodes 
join rec_nodes on rec_nodes.parent_id = nodes.id 
where depth < :depth 
) 
select id 
from rec_nodes 
where col = :col; 

上面會表現非常好,只要:id:depth約束with聲明(在不,它會構建整個圖表,並且你絕對不希望發生這種情況)。

可爲0 $雲服務的數據

不是雲,也不是$ 0,但very cheap here量低。 (最後我檢查了一下,基本的VPS在共享服務器上提供了Postgres,而且整個事情由Postgres創始人之一運行。)

Be wary當直接在雲中託管數據庫時。