GAE数据存储设计为用户的状态存储“喜欢”机制(如Facebook的“喜欢”)

问题描述 投票:0回答:1

我正在使用Google App Engine数据存储区并为用户状态寻找“喜欢”功能的设计解决方案(类似于Facebook“喜欢”)

我已经完成了Sharding Counters的概念(https://developers.google.com/appengine/articles/sharding_counters),发现它很好,适合计算你可以增加或减少计数的数量。但我想存储喜欢该状态的userId。所以我尝试了相同的分片概念来存储userIds,但是面对下面的问题,*首先,对于像count一样的shard userId列表是好的吗? *如果用户不喜欢它,我已从共享列表中删除用户ID。为此,我需要遍历所有分片数据存储区并执行userId检查和删除

有关这个或替代解决方案的任何建议来实现它吗?

google-app-engine google-cloud-datastore sharding
1个回答
0
投票

分片不适用于该情况。分片是为了避免在短时间内对同一对象进行多次写入。因为许多人喜欢同一个帖子,所以对“喜欢”的计数器有意义。当喜欢谁喜欢什么时,不一样。这些对象仅按用户更改,许多用户不共享同一对象。只需将它们存储在非分片表中,就像在sql中一样。

© www.soinside.com 2019 - 2024. All rights reserved.