熟悉的Neo4j将人际关系视为一等公民; 即席查询/遍历,完整性(如果一个节点被删除,链接消失)等.它还将广告作为表示关系以及优于关系数据库连接的唯一机制.
Riak链接表示关系有多强大?它们是否可以用来回答临时查询,例如"为每个收入超过x的人获取爱好列表"或朋友的朋友,假设合适的功能如二级索引?通常,它们可以模拟RDBMS中连接的输出吗?
它们是否也意味着大量使用,例如社交书签系统,其中有很多人和书签的链接?或者它们是否意味着谨慎使用(所有结构都必须是非循环图)?
在"不做"类别中:
Riak中的链接只是与值一起存储的一些元数据(对外键的单向引用列表).它们通常用作MapReduce的输入,可以随心所欲地执行任何操作,包括模拟RDBMS连接.
没有完整性检查或任何额外的魔术,如找到反向链接.它们只是一个方便的API,绝对可以通过将这些外键列表存储在值中,以某种方式序列化来实现.
对于社交书签示例,我建议使用Riak Search,因为它允许更灵活的查询,如http://example.com/*,并具有适当的分布式索引和查找.