Альтернатива хранению XML данных в колонке

StalkerClasses

Новичок
Добрый день.

Есть обычная Mysql-таблица
В одной из колонок сохраняются XML-данные с одиинаковой XML-стрктурой.
Причем если нужно то для другой колонки данные можно сохранить с другой структурой.
Удобство этого подхода в том, что Вам не нужно плодить дополнительные Mysql-колонки в рамках одной таблицы.

Недостатков хранения XML данных в колонке вижу два:
1. К примеру если завтра изменится структура то простым UPDATE здесь не обойдешься.
2. Нет возможности делать выборку как из обычной таблицы Mysql.

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

Есть случаи когда в колонке хранять данные в Serlialize, но это тоже самое что и в случае с XML.
 

AnrDaemon

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

Недостатков хранения XML данных в колонке вижу два:
1. К примеру если завтра изменится структура то простым UPDATE здесь не обойдешься.
2. Нет возможности делать выборку как из обычной таблицы Mysql.

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

Есть случаи когда в колонке хранять данные в Serlialize, но это тоже самое что и в случае с XML.
Не хранить XML в БД без особой на то причины.
 

hell0w0rd

Продвинутый новичок
Если действительно нужно хранить денормализованные данные в колонках таблицы - стоит посмотреть на современные субд, позволяющие хранить массивы/хеши/json, с возможностью использовать индексы, с операторами и функциями - postgres :)
Хотя и в mysql есть возможность работать с xml - https://dev.mysql.com/doc/refman/5.5/en/xml-functions.html.
 
Сверху