Intereting Posts
Разрешить просмотр нескольких шаблонов на странице настроек галереи при использовании Visual Editor Перезагрузка страницы с строкой запроса при входе для админов Как разместить ссылки в динамической боковой панели WordPress? Искать – Искать только мета-поля для сообщений Ошибка загрузки страницы Можно ли создавать настраиваемые роли в многопользовательском режиме, которые могут добавлять сайты? Рекомендуемые темы для блога, связанного с разработчиками? изменить боковую панель или просто виджеты для двух отдельных сообщений типа сообщения Как получить максимальный размер загрузки и принятые типы файлов в многопользовательском режиме? Редактор TinyMCE – новые строки, не отображаемые на передней панели Как добавить фильтр для вывода всех виджета Сообщение с определенным термином и без какого-либо срока Шаблоны пользовательских шаблонов сообщений? Использование страниц для обработки вызовов для пользовательских типов сообщений Проблема получения gettext для работы с условными операторами

Когда использовать пользовательские таблицы таблиц или add_option?

У меня есть довольно прямой вопрос. Когда становится слишком много данных для использования add_option, update_option и т. Д., А вместо этого используется таблица пользовательских БД?

Например, если плагин хранит тысячи и тысячи символов данных с помощью add_option и т. Д., Существует ли максимум, который он может обрабатывать до того, как он начнет создавать проблемы?

Мой плагин использовался для создания собственной таблицы БД, но он создал много проблем, в которых некоторые настройки пользователей не работали (особенно на серверах на базе Microsoft на базе Microsoft), и многие другие пользователи почувствовали необходимость связаться со мной и посоветовать мне вместо использования add_option. Я последовал их рекомендациям, и теперь плагин использует эти функции.

Тем не менее, я прошел долгий путь в своих способностях кодирования с тех пор и в свою очередь начал перепроектировать плагин. Теперь у него гораздо больше данных, которые нужно сохранить с помощью add_option. Даже до более чем 10000 + персонажей стоит, и я начинаю задаваться вопросом, не вызовет ли это каких-либо проблем.

Для записи я никогда не буду рекомендовать разработчикам использовать пользовательские таблицы базы данных. Да, они просты в использовании, но вы теряете 100% абстракции данных, предоставляемой WordPress.

add_option() / update_option() / get_option() – базовые функции значения ключа. Они хранят данные в поле MySQL LONGTEXT. LONGTEXT может хранить более 4 миллионов символов … так что опция 10000+ символов определенно возможна.

Иногда настраиваемые таблицы базы данных неизбежны. Если у вас есть тип данных (например, «задания») со многими различными свойствами, и вы ожидаете, что вам придется выполнять сложные фильтры по этим данным (например, «показать мне все задания в Мэриленде, которым требуется <5 лет опыта и заплатить более $ 80 тыс. и использовать либо навыки программирования, либо дизайн »), почти невозможно масштабировать до миллионов строк без правильно индексируемой таблицы.

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

В зависимости от типа данных вы можете рассмотреть возможность регистрации настраиваемого типа сообщений. Вот хороший учебник: http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress . CPT работают очень хорошо, чтобы хранить довольно большие объемы данных, которые являются более или менее пост-подобными в структуре (не слишком много разных метаданных, не требуют логики отношений между позициями). Это в некотором роде лучшее из обоих миров: вы получаете возможность делать довольно сложные запросы, как вы делали бы в пользовательской таблице (через WP_Query), в то же время получая преимущество «абстракции данных» WP, поскольку @EAMann предлагает ,