2011-05-16 48 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

绝对的选项进行查询你的情况考虑。