對於Scala編寫的應用程序我正在尋找下列要求「最好的」數據庫系統正確的數據庫系統:對於一個節點發現所有連接:像查詢請告訴我這個
- 的良好支持節點,通過與價值「someValue中」另一個節點連接的所有節點
- 可作爲$ 0爲數據
- 良好的社會支持和文檔
對於Scala編寫的應用程序我正在尋找下列要求「最好的」數據庫系統正確的數據庫系統:對於一個節點發現所有連接:像查詢請告訴我這個
最可能的是Y的低容量的雲服務ou試圖在您的數據庫上存儲圖。
有圖形數據庫特別創建用於存儲節點和連接節點與頂點(在您的條款,價值觀)。 http://en.wikipedia.org/wiki/Graph_database#Graph_database_projects
恐怕雲中沒有免費的選擇。您應該購買VPS,Amazon EC2實例,Windows Azure實例或任何東西來託管您的數據庫。現在沒有什麼可以免費的。
在圖形數據庫中,我的選擇是neo4j
,它有一個很好的支持,文檔和社區,它特別設計用於Java(和Scala,當然)。不過,我聽說orientdb
和vertexdb
也是很好的。
像查詢的良好支持:對於一個節點發現所有連接的節點,通過與價值「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當直接在雲中託管數據庫時。
個人而言,我會去OrientDB。 – Palesz 2012-03-07 16:19:51