Я бы сохранил XML в базе данных, если я уже получил его в виде XML (например, от вызова веб-службы или чего-то в этом роде) и мне нужно было бы где-то сохранить "оригинальную" копию данных.
Я мог бы также сохранить что-то в XML, которое является высоко иерархическим и / или только частично структурированным, что-то, что просто неудобно и сложно выразить в строках / столбцах, в которых превосходит обычная таблица RDBMS.
Как правило, всякий раз, когда вам нужно обработать информацию в вашей базе данных или приложениях, используя вашу базу данных, это легче сделать, если она находится в реляционных таблицах. Поэтому, если у вас нет действительно веской причины использовать XML, не используйте его, потому что вам лень создавать несколько таблиц.
У XML есть свои достоинства и все - но в целом он довольно многословен, время от времени немного громоздок (гораздо проще ВЫБРАТЬ в столбце таблицы, чем в XML, чтобы получить значение), и в целом обычно медленнее, чем использование реляционных таблиц сразу.
SELECT fieldName
FROM table
легче использовать, читать и понимать, чем
SELECT
xmlData.value('(xpath-expression)[1]', 'int') as 'Field'
FROM table
Итак, подведем итог: используйте его, если вы действительно видите необходимость и выгоду, но не переусердствуйте (только потому, что можете, или потому что это круто или сексуально). Используйте с осторожностью и по уважительным причинам.
Марк