如今,社交网络允许用户为每个帖子设置隐私设置。例如,在Facebook中,用户可以将状态更新的隐私设置为“只有我”、“朋友”、“公共”等。如何在Neo4j中设计这样的系统(没有关于此类内容的文档)?
一种方法是为每个帖子设置一个属性。但这看起来不是可扩展的,因为这个功能不能扩展到“与组1共享”(假设用户可以创建自己的组(或google+中的圈子))。此外,当用户试图访问新闻提要时,合并来自“只有我”、“朋友”、“公共”的单独结果听起来就像噩梦一样。
有什么建议吗?
发布于 2014-11-18 08:29:06
对于共享级别,我在内容上设置了一个标签(:SharePublic (或将其关闭) :ShareFriends,:ShareGroup,:Share个人节)
对于组和个人,从内容中创建关系。
聚合用户的新闻提要
直到限制
因为提要是一个核心的高性能用例,所以我可能不会使用cypher,而是一个服务器扩展。
Cypher“伪代码”
MATCH (u:User {login:{login}})
MATCH (:Head)-[:NEXT*1000]->(p:Post)
WHERE p:SharePublic
OR p:ShareIndividual AND (p)-[:SHARED_WITH]->(u)
OR p:ShareFriend AND (p)<-[:AUTHOR]-()-[:FRIEND]-(u)
OR p:ShareGroup AND (p)-[:SHARED_WITH]->(:Group)<-[:IN_GROUP]-(u)
RETURN p
LIMIT 30
https://stackoverflow.com/questions/26979403
复制相似问题