Я работаю над приложением SaaS, в котором у каждого клиента будут разные конфигурации в зависимости от приобретенной версии, приобретенных дополнительных функций и т. Д. Например, у клиента может быть ограничение в 3 пользовательских отчета.
Очевидно, я хочу сохранить эту конфигурацию в базе данных, но я не уверен в лучшем подходе. Мы хотим иметь возможность добавлять дополнительные функции в будущем, не требуя изменения схемы базы данных, поэтому отдельная таблица со столбцом для каждого параметра конфигурации не имеет смысла.
Возможные опции - это таблица с одной записью для каждого клиента, с полем XML, содержащим всю конфигурацию для этого клиента, но это усложняет изменение схемы XML для добавления дополнительных функций.
Мы могли бы использовать таблицу с парами ключ-значение и сохранить все параметры конфигурации в виде строк, а затем проанализировать правильный тип данных, но это кажется чем-то вроде кучи, как и наличие отдельной таблицы для параметров конфигурации строк, целое число параметры конфигурации и т. д.
Есть ли хороший пример для этого типа сценария, который используют люди?