Является ли хорошей практикой использование сериализации в PHP для хранения данных в БД?

Я наткнулся на интересный комментарий вphp.net о сериализации данных, чтобы сохранить их в БД.

Это говорит следующее:

Пожалуйста! пожалуйста! пожалуйста! НЕ сериализуйте данные и не помещайте их в свою базу данных. Сериализация может быть использована таким образом, но этоОтсутствует точка реляционной базы данных и типы данных, присущие вашему ядру базы данных. Это делает данные в вашей базе данных непереносимыми, трудными для чтения и может усложнять запросы. Если вы хотите, чтобы ваше приложение было переносимым на другие языки, например let 'Например, если вы обнаружите, что хотите использовать Java для некоторой части своего приложения, в которой есть смысл использовать Java, сериализация станет проблемой для ягодиц. Вы всегда должны иметь возможность запрашивать и изменять данные в базе данных без использования стороннего посреднического инструмента для манипулирования данными, которые нужно вставить.

Я сталкивался с этим слишком много раз за свою карьеру, это усложняет поддержку кода, кода с проблемами переносимости и данных, которые труднее переносить в другие системы RDMS, новую схему и т. д. Это также имеет дополнительный недостаток: поиск в вашей базе данных может быть затруднен по одному из полей, которые вымы сериализовали.

Тот'Нельзя сказать, что serialize () бесполезен. Это's not ... Хорошим местом для его использования может быть, например, файл кеша, который содержит результат интенсивной работы с данными. Есть тонны других ... Просто неНе ругайте сериализацию, потому что у следующего парня, который придет, будет кошмар обслуживания или миграции.

Я хотел бы знать, является ли это стандартным представлением об использовании сериализации данных для целей БД. Имеется в виду, если этоРекомендуется использовать его иногда, или если этого следует избегать.

Например, мне недавно дали указание использовать сериализацию.

В этом случае данные, которые мы должны были сохранить в таблицу MySQL, были следующими:

Марка машины.Модель автомобиля.Автомобильная версия.Информация о машине.

Информация о машине представляла собой массив, представляющий все свойства версии, так что это было большое количество переменных (менее 100 свойств). Этот массив был сериализованным.

Основной причиной, по которой мне дали сериализацию, было следующее:

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

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

Ответы на вопрос(1)

Ваш ответ на вопрос