Хранение пользовательских данных в файлах JSON на сервере
Я создаю веб-приложение, которое использует PHP и MySQL на бэкэнде. Я хочу сохранить некоторые пользовательские данные - в основном набор объектов в формате JSON, которые содержат подробную информацию о "избранном" пользователя для приложения. Я не хочу хранить эти данные JSON в одном поле MySQL в моей таблице базы данных пользователей, потому что это не кажется эффективным.
Итак, я думаю просто сохранить данные JSON в плоском файле на сервере с уникальным идентификатором, который я могу использовать, чтобы узнать, какой пользователь файл связан с. Мои вопросы таковы: будет ли это масштабируемым решением для более чем 10 000 пользователей?
1 answers
Это, вероятно, вызовет у вас много головной боли, как с точки зрения технических аспектов, так и с точки зрения безопасности. И нет, это не очень масштабируемо. Подумайте о проблемах, которые это вызовет: что произойдет, когда вам нужно будет добавить сервер? Как вы будете синхронизировать файлы? Что делать, если вы хотите сделать что-то с участием нескольких пользователей, например, посмотреть, у скольких людей XYZ является любимым?
Гораздо лучший вариант - выполнить одно из следующих действий:
- Нормализуйте свою базу данных (выполните эту часть независимо от этого) и поместите избранное в свою собственную таблицу или
- Сохраните избранное в столбце JSON (возможно, неправильный ответ, но в некоторых контекстах имеет смысл)
Если вы беспокоитесь о скорости, вы можете реализовать некоторое кэширование с помощью Redis, memcached или какой-либо другой системы. Но пока не делайте этого - это преждевременная оптимизация. Делайте это, когда вам это нужно.