2015-05-11 3 views
2

Хорошо, поэтому я довольно новичок в программировании Wordpress и реализовал все свои основные данные, а данные плагина всегда сериализованы. Разве это не отвлекает от РЕАЛЬНОГО аспекта СУБД? И это даже не экономит место, потому что строки очень длинные, и сложнее масштабировать/изменять данные таким образом ...Почему wordpress сериализует данные в базе данных?

Я не понимаю, почему они решили это сделать, и Я не нашел никаких ссылок в Интернете о том, почему они это сделают.

+1

С wordpress у вас будет много таких моментов, спрашивающих, почему они что-то сделали. По правде говоря, они тоже не знают. Вероятно, это просто показалось хорошей идее на данный момент и в отсутствие знаний или что-то еще, они просто пошли с ним. –

ответ

4

Очевидно, что, поскольку я не разработчик Wordpress, я не знаю их точной причины.

Но, возможно, они пришли к такому же выводу, что и я:

Иногда это просто не стоит. Иногда вы просто хотите сохранить некоторые данные. Иногда база данных никогда не будет когда-либо делать что-либо с этими данными, кроме как отправить ее обратно в код обработки. В таких случаях, когда данные никогда не будут связаны ни с чем другим в базе данных, зачем беспокоиться о создании реляционной базы данных, когда дамп данных - это все, что вам нужно?

Это хорошая идея? Наверное, нет, это ленивый, который просто работает, когда вам это нужно, с минимальной суетой. Однако, если я когда-нибудь поймаю вас, используя MySQL, чтобы попытаться обработать данные из сериализованного столбца, я запрещу вас из Интернета.

+0

Благодарю вас, у вас почему вы так разочаровываетесь в работе с lol ... и wordpress существует уже более 10 лет, вы бы подумали, что они уже выяснили свою основную структуру данных ... – dave

-1

Сериализация:

PHP-массив или объект или другие сложные структуры данных, не может быть транспортировке или хранении или иным образом использовать вне работающей PHP сценария. Если вы хотите сохранить такую ​​сложную структуру данных за пределы одного запуска скрипта, вам необходимо ее сериализовать.

Плагины WordPress и сторонние плагины часто сериализуют массивы или объекты как способ хранения структурированных данных в базе данных WordPress.

Сериализация данных для повышения производительности или эффективности в базе данных. Вместо создания новой таблицы для данных, или хранения данных в таблице, которые могут привести к расточительным пустым полям, вы можете хранить все данные в массиве в одном поле. Это приводит к сохранению пространства и упрощенным операторам SQL. Сериализованные данные сохраняются и восстанавливаются с использованием функций serialize() и unserialize() PHP.

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

Есть недостаток для сериализации, в котором,

вы не можете запустить запрос MySQL на сериализованных данных. Данные нужно вытащить из таблицы через PHP, неэтериализовать, а затем выполнить поиск с использованием PHP вместо MySQL

В переносимости данных вы не можете выполнять простую процедуру поиска и замены и изменять URL-адрес сайта, хранящийся в виде виджета или плагина , Лучше использовать WordPress Search and Replace Tool или WP Migrate DB для полной миграции данных, которые сохраняются процедурой сериализации.

+0

вы можете исследовать, почему в голосовании? если что-то не так в моем ответе, пожалуйста, объясните это. –

0

Потому что они не слишком сильно изменили архитектора. Это делает его обратно совместимым со старыми версиями WordPress, которые также совместимы со старыми версиями MySQL и PHP.

Будучи разработчиком с большим опытом работы с множеством различных CMS и MVC-фреймворков, я могу сказать, что они идиоты для использования сериализованных данных и должны использовать JSON.

Это дерьмовое решение, но его также можно уважать.

Смежные вопросы