Сохранить данные настроек PHP как массив или базу данных MySQL? - PullRequest
1 голос
/ 26 января 2011

Я работаю над темой Wordpress, и она должна иметь некоторые настройки.До сих пор они есть в базе данных, но я также хочу, чтобы они были переносимыми.По этой причине я также сохранил данные в виде массива в файл settings.php.Сейчас я рассматриваю возможность вообще не использовать базу данных, чтобы избежать двойного хранения.

Некоторые вопросы по этому поводу

  • Есть ли что-то плохое?о хранении данных в массиве внутри включенного PHP-файла, по сравнению с базой данных MySQL?(Это просто настройки, ничего не нужно сортировать, не нужно никаких отношений)
  • Какой самый быстрый?Включить php-файл с массивом или загрузить данные из базы данных?
  • Другие мысли об этом?

Я даю контрольный голос за наиболее полный ответ на мои вопросы,Короткие ответы могут поднять голос.

Ответы [ 4 ]

2 голосов
/ 26 января 2011

Я довольно хардкорный парень по работе с базами данных, и я бы сказал, что они не должны быть в базе данных.

Подсказки в ваших заявлениях: "Это просто настройки, ничего не нужно сортировать, никаких отношенийНужно "и" Я также хочу, чтобы они были переносимы "

Мой главный аргумент - простота.PHP очень хорош с массивами, он им нравится, он их понимает, может легко загружать их из файлов и сохранять их в файлы.Таким образом, даже если вы время от времени меняете их из приложения, обновление и сохранение массива не представляет особой проблемы.Таким образом, если вы используете массив, вы используете нативную функцию PHP, и это создает архитектурная простота для этой функции.

Таким образом, для переносимости наиболее переносимой базой данных является та, которую вы не используете.Если у вас есть простота использования собственного формата данных PHP, вам не нужна база данных (по крайней мере, для этого)

Для скорости, в любом случае в Linux PHP может открыть файл и прочитать его быстрее, чем онможет сделать обход в базу данных для чего угодно.

Единственным оставшимся аргументом против решения с использованием массива будет взаимодействие с другими данными, но вы сказали, что его нет.

Так что, как хардкорный парень, работающий с базами данных, я бы сказал, что не используйте базу данных только потому, что она есть.Базы данных невероятны для структурированных данных, если это просто плоский список настроек, то это не структурированные данные.БД может сделать, файловая система может это сделать, выбрать что проще.

1 голос
/ 26 января 2011

Если вас беспокоит переносимость, вас может заинтересовать использование ODBC или объектов данных PHP

Что касается самого быстрого, я не эксперт, но файл настроек включает в себя только чтение текстового файла и его анализ. Опция базы данных обычно приводит к TCP-соединениям (если только вы не используете mysqlite, что я бы порекомендовал, если вы собираетесь хранить больше, чем просто пути к файлам и имена баз данных.

С уважением,

1 голос
/ 26 января 2011

Не создавайте файловое хранилище для ваших Wordpress-Theme-Settings, если вы хотите, чтобы оно было переносимым.На некоторых сайтах папка тем доступна только для чтения.

Для первоначальной настройки можно считывать настройки практически со всех файлов.Позже его лучше хранить (и резервировать) в базе данных.

Если вы храните вещи в файле, используйте файлы на основе ini-style , поскольку PHP предоставляет вам API бесплатно.Обычно вещи лучше хранить в массиве или сериализовать , если ваши параметры не ограничены.

Не слишком беспокоиться о производительности, просто используйте wordpress options api как лучшая практика.

0 голосов
/ 26 января 2011

Основная проблема наличия их в файле возникает, если вы хотите, чтобы настройки можно было настраивать через сам сайт. Если нет, то наличие их в коде не является реальной причиной для беспокойства.

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