用户将回答随机问题(从数据库中提取),一旦他回答问题,他将不再被要求再次回答。
所以我需要一种方法来记住应用程序用户回答的问题。
我在考虑将已回答的问题与user_id一起存储在一个单独的表中,但考虑到应用程序的性质(快速“是”“否”问题),每个用户最终可能会回答数千个问题。我不确定更新和定期访问这么大的表是一个很好的解决方案。
还有其他建议吗?
答案 0 :(得分:1)
一位用户的数千个答案?真的?
如果这是真的可能,您可以将一组已回答的问题存储为Bloom filter,可以将其序列化为固定大小;请参阅PyBloom了解一个实现,可以很容易地将其用于存储过滤器状态 BLOB或VARBINARY列。
如果用户在一个会话中回答几个问题,您可能希望在内存中保留当前状态的副本,并在更改时保留它。
你不是要跟踪答案吗?为什么不能只查询用户现有的答案来选择未答复的问题?如果我这样做,我会首先尝试最简单的解决方案,只有当(如果)简单的解决方案耗尽气体时,才会寻找奇特的解决方案。