将数据保存到db中以跟踪用户是否单击了“喜欢/收藏夹”按钮的最佳方法是什么?
我尝试了以下数据结构:
postId:{
...
like_count:123,
user_who_liked:[uid1,uid2,uid3...]
}
将上述数据下载到客户端后,我们可以通过检查数组user_who_liked
是否包含客户端的uid来检查客户端是否喜欢该帖子。但是,如果user_who_liked
数组中的项数超过1000,则此方法会消耗过多的冗余带宽。
我从instagram中找到了以下json数据:
{
...
viewer_has_liked: false
viewer_has_saved: false
viewer_has_saved_to_collection: false
viewer_in_photo_of_you: false
}
这种方法似乎更有效,但是数据库如何知道用户是否喜欢?他们是否存储一堆uid,并检查用户的uid是否在其中?那些has_liked / has_saved布尔值派生属性吗?