我正在建立一个社交网络网站。在我的社交网络中,用户可以为自己的帖子设置访问权限。例如像facebook,他们可以设置权限only friends
,only me
,public
,custom
。我正在使用Algolia搜索引擎来过滤用户的帖子。用户创建帖子时,我将使用permission
或public
等friends
字段保存该帖子。如果是friends
,我将在另一个名为ids
的文件中添加他/她的朋友accessList
。
Post {
id: 'postId1334'
text: 'This is a test'
permission: 'Friends'
accessList: ['userId1', 'userId123', 'userId2341', 'userId13455']
}
当用户打开时间线时,我将query
和filter= permission: Public OR accessList: currentUserId
一起使用,这意味着找到具有“公共许可or current user identifier includes the post
访问列表”的帖子。
一切正常,直到我们更改了用户friend list
。如果用户将新用户删除或添加到他/她的朋友列表,他们可以看到或看不到某些经Only Friends
许可保存的帖子。对于这种情况,用户朋友列表上的任何更改我都必须更新所有用户帖子accessList以适应新的朋友列表。
还有另一种设置用户访问权限的方法吗?
还是我需要使用另一种数据结构?
还是我需要更改查询过滤器?
答案 0 :(得分:0)
我认为数据结构不需要任何更改。由于Algolia是无架构的,因此您描述的结构是如何在“发布”和访问列表用户之间复制“关联”。