对于用Scala编写的应用程序,我正在寻找满足以下要求的“最佳”数据库系统:
答案 0 :(得分:4)
您最有可能尝试在数据库中存储图表。
有一些图形数据库,专门用于存储节点和连接节点与顶点(用你的术语,值)。 http://en.wikipedia.org/wiki/Graph_database#Graph_database_projects
我担心,云中没有免费提供免费选项。您应该购买VPS,Amazon EC2实例,Windows Azure实例或任何托管数据库的内容。这些天没有什么是免费的。
在图形数据库中,我的选择是neo4j
,它有很好的支持,文档,社区,它专门用于Java(当然还有Scala)。但我听说orientdb
和vertexdb
对此也有好处。
答案 1 :(得分: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直接在云中托管数据库。