Динамические данные / поля всегда веселые.
То, как я подошел к этому раньше, это иметь таблицу, которая определяет поля, которые я хочу. Очень простой пример:
GroupId int, <- позволяет группировать поля для общей цели </p>
FieldId int, <- уникальный идентификатор для объединений </p>
FieldName varchar (100), <- очевидный </p>
DataType int <- объединяет таблицу, которая содержит доступные типы, такие как текст, телефон, электронная почта, которые могут иметь специальные характеристики обработки. </p>
DisplayOrder int, <- в каком порядке поля будут отображаться на экране. </p>
Тогда у меня есть другая таблица для хранения фактических данных:
EntryId int, <- группирует значения в уникальную точку входа.
GroupId int,
FieldId int,
Значение varchar (max) <- используйте любое число, которое, по вашему мнению, будет содержать данные; или max, если у вас правильная версия сервера sql </p>
Наконец, я динамически генерирую представления, которые поворачивают фактические данные на 90 градусов для облегчения создания отчетов.
Делая это таким образом, вы получаете большую свободу в том, что собираете, без изменения базового кода.