看看Neo4j,320亿的关系限制令我担心(想象有4000万用户上传500张照片,有500个朋友,发表500评论等等,在你知道之前你已经超过320亿)..所以我有一些担忧和必须确保我在使用哪个数据库上做出最佳选择.
不是在寻找主观答案,也不是在这里辩论 - 即.哪一个更好等等-而是因为我打赌什么图形数据库是使用一个启动的未来,我需要知道的风险不同的数据库目前,如没有超过32billion关系Neo4j的.
现在,有几家公司将他们的图形数据库称为"领先的图形数据库"..但让我们看看过去的炒作 - 谁拥有最多的资金支持?哪个db享有大量的社区支持?哪一个拥有坚实的公司支持商业支持?
哪一个最有可能足够成熟所以如果你想,你可以轻松创建Facebook?
在技术特性或熟悉度上选择图形数据库很容易 - 但我正在寻找更多 - 我想确保公司的几年仍然存在.我想确保我不会选择基于炒作的Neo4j以及它目前(暂时?)的势头......
还有什么其他图表可以与Neo4gj竞争,以创建一个类似于Facebook的完整的社交网络(再次,不是寻找更好,只是寻找一个坚实的竞争对手).
请不要让这变成主观的Neo vs Dex辩论 - 只需要事实和实体答案..
我正在使用令人敬畏的neography gem并且遇到了将Cypher查询的结果转换为结构化对象的一个小问题(OpenStruct.new ...)
我不知道如何从列和数据查询结果创建哈希或OpenStruct
{"columns"=>["p.pd_challenge_id", "p.author_id"], "data"=>[["158", "88"], ["158", "90"], ["158", "99"], ["158", "95"], ["158", "97"]]}
Run Code Online (Sandbox Code Playgroud)
我无法从中创建可用的哈希.我尝试了几件事,包括
["data"].map{|x|{ "challenge_id" => x[1],"author_id"=>x[0]}}.to_json
Run Code Online (Sandbox Code Playgroud)
结果是
{{"challenge_id":158, "author_id":88}, {"challenge_id":158, "author_id":90}, {"challenge_id":158, "author_id":99}} etc.. (to which I simply cannot convert to a hash or openstruct)
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是存储在struct对象中的类似内容,因此scaffolded视图可以不加修改地读取它:
{:challenge_id=>158, :author_id=>88}
{:challenge_id=>158, :author_id=>90}
{:challenge_id=>158, :author_id=>99}
Run Code Online (Sandbox Code Playgroud)
我的观点会寻找object.challenge_id
现在,我尝试在"challenge_id"上使用to_sym,但在使用.map方法时无效.
我试图在["数据"]上哈希[@mydata],这也行不通
是否有一种简单的方法可以将所有这些数据放入结构化对象(OpenStruct.new ..)中,这样我的表单就可以像读取活动记录查询的结果一样读取它?我可以用neo.get_node_properties做到这一点,但似乎无法让这个工作正常.
我已经为社交网络创建了一个图形模型,并且需要一些关于缩放设计的具体建议.请原谅这些问题,但我没有找到很多明显的例子......
注意:状态更新和活动节点/关系是链接列表 - 最新的条目不断放在列表的顶部.
链接列表允许生成新闻源,但每个用户可能有数百条记录 - 我认为即使数据按日期降序排列,限制子句也不够.我是否必须拥有一个单独的链接列表,该列表仅包含最新的10个状态/活动更新)并不断替换该列表上的头部以获得更好的活动源生成,或者将一个列表正确排序并完成工作(使用限制条款)
这些节点都具有属性(带有内容,ID等的json数据) - "全局"索引如何在这里发挥作用,以便我可以找到喜欢Depeche Mode的用户而无需等待一生的结果?我知道如何将一个节点添加到索引,只是想知道我是否错过了这里的部分图片..
安全性 - 登录和密码..我认为图形数据库可以存储它们,但我认为这是一个安全风险 - 将它保存在postgres等会更好吗?
您将如何改进此模型以处理可伸缩性?想象一下,有2000万用户正在敲打这个......
想象一下4000万用户 - 在可扩展性方面,这个模型出了什么问题?