Необходимо создать внутри базы данных специфичную структуру, однако не могу додуматься как это сделать наиболее рационально.
Идей такая: в базе должны храниться описания структур и элементы, содержащие данные по этим структурам.
Сам пока додумался до создания 2х таблиц: первая содержит название структуры и ее идентификатор, а вторая - поля структур (всех): идентификатор структуры к которой поле принадлежит, название, описание (и еще чего-нибудь). Таким образом получаем возможность создания любого количества структур с любым количеством полей.
Проблема встает дальше - как хранить данные? Можно создать таблицу с сотней полей типа varchar(MAX), в надежде что больших структур у нас не будет, или же хранить данные в сериализованном виде в binary-полях, но оба эти варианта мне не нравиться из-за неуниверсальности и сложности поиска по данным.
Есть какие-то более гибкие и универсальные варианты? Или же надо подходить с другой стороны?
Оговорюсь, что вариант с созднанием отдельной таблицы для каждой структуры неприемлим, т.к. оных может быть довольно много и в процессе разработки неизвестно что там будет храниться.
MSSQL 2008