在appengine数据存储中引用计数是一个好主意吗?

时间:2012-09-27 12:49:29

标签: google-app-engine datastore

我正在考虑实现一个系统,让用户能够向对方发送消息,我想到了如果不是为每个接收器保存消息的副本,你可以保存的大量数据,我会保存一个带有接收者列表的消息。

实际上会有3个列表,一个接收者列表,一个布尔列表,如果b [i],则接收者[i]已读取该消息,第三个列表包含尚未删除的所有用户信息。每天,我都会运行一个cron作业,查找包含此类用户的空列表的消息,然后将其删除。

这个型号有问题吗?

1 个答案:

答案 0 :(得分:2)

第一个架构,就像尝试复制电子邮件架构一样,这个架构过时且效果不佳。

当然,第二种方法更好。

有问题吗?没有人,而你的代码没有错误。但是如果你必须支持它们,请考虑回复。如果实例不超过1M大小限制,则可能第四个列表就足够了。

但实际上,分离的答案模型更加一致和直观。此新模型​​还会包含以下列表:readed_bydeleted_by

cron工作可能是不必要的。您可以在用户将其标记为“已检测到”后删除该邮件,如果message.deleted_by == message.receivers + message.from