Является ли «таблица настроек» всего приложения хорошей идеей? - PullRequest
1 голос
/ 03 апреля 2012

Wordpress, например, имеет таблицу с name => value строками для хранения настроек всего приложения (название блога, настройки комментариев и т. Д.).Обратите внимание, что я имею в виду настройки, которые могут часто изменяться во время обычного использования приложения.

Я понимаю, почему Wordpress делает это так (переносимость: легко скопировать всю базу данных в другой блог и сохранитьнастройки), но есть ли лучший способ сделать это для небольших приложений?

Я знаю, что многие фреймворки, например, Zend Framework, имеют файл конфигурации с настройками конфигурации для всего приложения.Почему бы просто не динамически изменить этот файл во время выполнения, чтобы сохранить мои настройки?Для меня это имеет несколько преимуществ перед хранилищем настроек базы данных:

  • Меньше использования базы данных
  • Настройки легко редактируются человеком по FTP без необходимости использования оболочки MySQL или экземпляра phpMyAdmin
  • Файлы настроек могут быть легко скопированы и восстановлены

С другой стороны, самое большое осложнение, которое я могу придумать, - это параллелизм.Файл должен быть заблокирован во время внесения изменений.

Какой предпочтительный способ?

1 Ответ

1 голос
/ 03 апреля 2012

Преимущества таблицы БД

  • Настройки являются общими для всех веб-серверов, использующих одну и ту же базу данных. Нет необходимости в репликации файлов / сетевой файловой системе
  • Приложение, скорее всего, уже использует базу данных, без дополнительной настройки
  • Нет зависимости от файловой системы
  • Проще кешировать (может, уже есть какой-то общий слой кеширования БД?)
  • Обрабатывает параллелизм
  • Приложение может уже иметь каркас или способ обработки CRUD любой таблицы базы данных (создание графического интерфейса пользователя просто)
  • Прозрачная резервная копия с остальной частью вашего приложения
  • Может быть строго напечатан, если у вас есть несколько value столбцов разных типов, используемых исключительно

... и недостатки

  • вам нужен инструмент или знания SQL для его поддержки
  • может иметь худшую производительность
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...