Сохранение настроек XML → База данных

Сегодня меня попросили написать блок и сохранить его в файле XML (TXmlDocument). Затем файл XML должен храниться в поле varchar(MAX) в SQL Server.

Все это делается из Delphi 7.

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

Однако, хотя XML использовался, прежде всего, для облегчения переноса данных. Кроме того, действительно ли нам нужен еще один слой для доступа к базе данных, если мы работаем локально?

Чтение из базы данных осуществляется аналогичным образом - считывается в TXmlDocument и затем обрабатывается.

Не все подразделения используют этот подход. Он используется в основном для хранения/чтения сторонних настроек.

Теперь мой вопрос заключается в том, является ли эта стандартная практика и вообще ли она рекомендована?

Спасибо за ваш ценный вклад.

Редактировать:

Какой-то контекст, надеюсь.

Мы общаемся с третьими сторонами. У каждого третьего участника есть настройки, которые мы используем для связи с ними.

Теперь вместо сохранения каждого из этих параметров в другом поле таблицы SQL мы создаем XML-документ из Delphi и заполняем его настройками для определенной третьей стороны. Затем этот XML-документ хранится в одном поле в таблице (в отличие от нескольких атомных полей).

1 ответ

Это абсолютно нормально! Вместо множества разных таблиц с разными столбцами для разных параметров вы можете использовать одну таблицу ключевых значений с настройками XML в значении.

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

Отпустите идею о том, что вам всегда нужны разные поля таблицы базы данных для разных данных.

licensed under cc by-sa 3.0 with attribution.