选择文档数据库和图数据库

3
我有以下系统需求:
1)好友 - 需要计算用户之间的距离,找到用户之间工作相关的共同点,但在MySQL上无法很好地扩展。因此我认为选择图形数据库是一个不错的选择?
2)我有用户个人资料字段,大约有120个字段中的80%是1:M字段,在mysql中需要使用96个表存储这些1:M。如果我需要提取所有用户信息,则需要访问所有这些表。因此,解决方案是文档数据库、列数据库或键值数据库?
目前,我已经看到了OrientDB可以充当文档和图形数据库。它能够满足上述需求吗?还是有更好的数据库选择?
谢谢。
编辑: 个人资料的需求是用户字段:这是一个职业社交网络,因此有很多类似于组合样式的字段,这些字段是1:M。因此,如果有120个字段,其中96个是1:M,最好如何存储?例如您曾经工作过的公司。你曾经学习的学校。你读过的杂志。你写过的文章等。每个都是1:M,就像这样有大约96个这样的字段=96个MySQL表格。无法合并,因为其中一些具有独特的元数据。我需要在这些字段上搜索并允许快速读取以保持用户体验好。
对于图形化:它是连接人们的事情。在启动时,我只使用了一个功能,即当您查看某个人时,系统将显示您与该人之间隔了多少度。社交功能在发布后才有用。无论如何,在MySQL上,我无法很好地扩展这一点。如果我有100个朋友,每个人都有100个朋友,第一次如何最好地找到这些人的方式,我想采用图形数据库。
平台是codeigniter PHP / Mysql的核心数据库。
2个回答

1

计算节点之间的距离听起来很像图形数据库。OrientDB看起来非常令人印象深刻,我个人曾经尝试过Neo4j,你也可以看看。

要给出明确的答案,您需要提供更多的需求信息。


0

听起来像是RDF数据库 - 也就是三元存储的绝佳场景。如果你的数据是关于人际关系的...为什么不用FOAF词汇在RDF中建模呢?然后你可以使用众多的三元存储之一。如果你需要可扩展性,我推荐4store - 这是一个用C语言编写的分布式RDF数据库。4store会将你的数据分布在集群中,你将能够使用SPARQL进行查询。

在你的情况下,这绝对是值得考虑的选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接