2016-02-20 2 views
0

пользователь будет отвечать на случайные вопросы (вытащил из БД), и как только он ответит на вопрос, ему больше не будет предложено ответить на него снова.запомнить набор данных, чтобы избежать избыточности

Так что мне нужен способ запомнить вопросы, на которые отвечают пользователи приложения.

Я думал о сохранении ответов на вопросы в отдельной таблице вместе с user_id, но учитывая природу приложения (быстрая «да» «нет»), каждый пользователь может ответить на тысячи вопросов. Я не уверен, что обновление и доступ к такой большой таблице на регулярной основе является хорошим решением.

Любые другие предложения?

ответ

1

Тысячи ответов от одного пользователя? В самом деле?

Если это реальная возможность, вы можете сохранить набор ответов на вопросы как Bloom filter, которые могут быть сериализованы до фиксированного размера; см. PyBloom для одной реализации, которая может быть легко принята для хранения состояния фильтра в столбце BLOB или VARBINARY в .

Если пользователи ответят на несколько вопросов за один сеанс, возможно, вам захочется сохранить копию текущего состояния в памяти, а также сохранить его при его изменении.

Вы не собираетесь отслеживать ответы? Почему вы не можете просто запросить ответы на существующие ответы, чтобы пользователь мог выбрать неотвеченный вопрос? Если бы я это делал, сначала попробовал бы самое простое решение, и только подойду для фантастического решения, когда (и если) простое решение закончилось газом.

Смежные вопросы