@man_without_face
студент

Как лучше хранить историю отмеченных в тесте вопросов для каждого пользователя?

Есть таблица с вопросами, в которой около 10тыс записей. Есть таблица пользователей, которых порядка 2 тыс. Я хотел бы не показывать пользователю те вопросы, которые он уже проходил. Соответственно мне нужно где-то хранить об этом информацию, но не пойму где.

Если делать таблицу с ответами, то получится около 20 000 000 записей для текущих условий. А если вопросов или пользователей станет в 10 раз больше? Это уже 200 млн строк. Как-то много. Да и как искать вопросы, которые он ещё не прошёл? where in not (id1, id2, ..) - вряд ли.

Может кто сталкивался с подобным? Что-то никак сообразить не могу.
  • Вопрос задан
  • 278 просмотров
Решения вопроса 1
devspec
@devspec
Помогло? Отметь решением
Вам нужно сделать еще одну таблицу и в ней хранить данные о пользователях и вопросах.
Всего 2 поля int - user_id и question_id
Даже 200 млн таких записей, при условии наличия индексов, не создадут существенной нагрузки на систему.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
как то вы странно считаете, в таблице вы будете хранить только номера вопросов которые он прошел, то есть т*количество средних пройденных вопросов, если скажем юзеры проходят по сто вопросов это будет всего 200 000 записей
да и даже 20 млн нынче это совсем не много
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы