Я делал это в прошлом, используя столбец XML в базе данных для хранения дополнительных полей. У меня обычно есть большой набор свойств в столбце XML, а затем я использую XSD для принудительной проверки при обновлении или вставке. Когда я получаю данные, у меня есть правила в XSL или объектной модели, которые определяют, отображается ли элемент, какое дополнительное форматирование применить и для веб-форм, какой тип элемента ввода использовать на основе типа данных в узле свойства.
Это работает очень хорошо, если необходимо, чтобы некоторые данные хранились реляционно, а другие данные хранились в расширенном формате, чтобы избежать эффекта широкой таблицы с множеством нулевых строк.
Если вам не нужно выполнять реляционные операции с данными, такие как объединение или вращение с другими таблицами в базе данных, тогда простая автономная форма XML также является хорошим решением.
Большинство баз данных теперь имеют первоклассную поддержку XML для такого рода вещей. Например, в SQL Server вы можете применить схему XSD к столбцу типа данных XML прямо в базе данных. В последних версиях также поддерживается индексация по этим столбцам.