2016-06-12 5 views
2

Я создаю веб-приложение, использующее PHP и MySQL на сервере. Я хочу сохранить некоторые пользовательские данные - в основном набор объектов в формате JSON, который детализирует пользовательскую «избранное» для приложения. Я не хочу хранить данные JSON в одном поле MySQL в моей таблице пользовательской базы данных, потому что это не кажется эффективным.Сохранение пользовательских данных в файлах JSON на сервере

Итак, я собираюсь просто сохранить данные JSON в плоском файле на сервере с уникальным идентификатором, который я могу использовать, чтобы узнать, с каким пользователем связан этот файл. Мои вопросы: будет ли это масштабируемое решение для более чем 10 000 пользователей?

+0

https://dev.mysql.com/doc/refman/5.7/ru/json.html – rjdown

ответ

2

Это, вероятно, вызовет у вас много головных болей, как с точки зрения технических аспектов, так и с точки зрения безопасности. И нет, это не очень масштабируемо. Подумайте о проблемах, которые это вызовет: что происходит, когда вам нужно добавить сервер? Как вы будете синхронизировать файлы? Что делать, если вы хотите сделать что-то с участием нескольких пользователей, например, посмотреть, сколько людей XYZ является фаворитом?

Гораздо лучше вариант, чтобы сделать одно из следующих действий:

  • нормализуют свою базу данных (для этого часть независимо) и поставить фаворитов в своей собственной таблице или
  • Сохранить фаворитов в JSON (возможно, неправильный ответ, но имеет смысл в некоторых контекстах)

Если вы беспокоитесь о скорости, вы можете реализовать некоторое кэширование с помощью Redis, memcached или какой-либо другой системы. Но не сделать это еще - это преждевременная оптимизация. Сделайте это, когда вам это нужно.

+0

Великие пункты Ред. Ваш комментарий о просмотре нескольких пользователей происходит. Первоначально я думал использовать IndexedDB на стороне клиента, но это делает несколько пользовательских аналитиков намного сложнее. Я думаю, что посмотрю на решение MySQL, даже если оно не идеально. –

+0

Ed I также отметил, что MySQL 5.7 обеспечивает встроенную поддержку данных JSON. Я на более старой версии MySQL 5.6, поэтому я собираюсь обновить и протестировать извлечение/хранение JSON. –

+0

@ Yves Удачи, и я рад, что смогу помочь! –