@man_without_face
студент

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
от 40 000 до 60 000 ₽
19 апр. 2024, в 22:48
100 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект