Как масштабировать таблицу mysql для хранения исторических данных без увеличения размера таблицы

В моем приложении есть анкета, с помощью которой я создаю данные, соответствующие пользователям, которые ее заполнили и в какое время (мне нужно применить дальнейшую обработку последнего объекта/анкеты для каждого пользователя). Эти данные сохраняются в базе данных MySQL моего сервера. Поскольку эта анкета открыта для всех моих пользователей и будет подаваться много раз, я не хочу, чтобы каждый раз создавались новые записи для одного и того же пользователя, поскольку это увеличит размер таблицы (количество пользователей может быть около 10M), но я также хочу сохранить старые данные как историю для последующей обработки.

Теперь у меня в голове следующие варианты: Создать две таблицы. Одна главная таблица для хранения новых объектов и одна таблица истории для хранения исторических объектов. Каждый раз, когда анкета подается, она будет создавать новую запись в таблице истории, но обновлять существующую запись в главной таблице.

Итак, есть ли какой-то лучший подход к этому и как другие компании решают подобные ситуации?

Я думаю, что вам следует пройти через концепции SCD (Slowly Changing Dimension) и решить, какая из них лучше подходит вам.

Пожалуйста, прочитайте это, и я думаю, вы найдете лучший способ для себя :

Здесь

Вернуться на верх