Я подозреваю, что клиенты должны иметь возможность создавать объекты, хранящиеся в базе данных, с настраиваемыми полями.
Есть несколько подходов:
Вы можете создать таблицу с общими полями сущностей (id, dateCreated, dateModified, isVisible, typeId ...) и сохранить дополнительные специальные поля в xml-поле (одна таблица для всех типов сущностей).
Если тип данных Xml выглядит слишком старым для хранения данных, вы можете использовать nvarchar, где атрибуты хранятся в нотации JSON. Двоичный формат также можно использовать, если размер имеет значение :)
Или вы можете создать связанную таблицу для хранения определенных атрибутов объекта. Этот подход реализован в поставщике профиля asp.net по умолчанию: таблица для пользователей и таблица для профиля пользователя с парами [userId, имя-атрибута профиля, значение-атрибута профиля
Что выбрать, зависит от других требований.