Предпосылки: Я работаю над проектом, который в настоящее время имеет бэкэнд SQL Server и угловой интерфейс. Проект является относительно простым форматом приложения, где есть несколько форм, которые пользователь может передать на бэкэнд. Сейчас все работает отлично, но есть новое требование в конвейере, где они хотят, чтобы будущие формы были динамичными. Динамический в том смысле, в котором они хотят, чтобы администраторы могли добавлять/удалять поля из формы без какого-либо вмешательства.
Для прототипа, который я построил, я довольно много издевался над nosql db, сохраняя углоформенный json obj, который описывает форму в одной таблице. Сейчас я обсуждаю, как фактически сохранить результаты этих форм. Я мог бы просто сохранить объект результата JSON этих форм в таблице результатов формы "один зонтик". Поэтому по существу возьмите ng-модель и подстройте ее, и сохраните ее в таблице результатов.
Вопрос:
Место, где я столкнулся с проблемами, - это отчетность о результатах этих форм. Для отчетов потребуется считывать данные/распаковывать их в динамическую таблицу и затем запрашивать их по запросу. Я не очень хорошо знаком с SQL Reporting Services, но могу ли я создать общий отчет, который сможет распаковать JSON, запросить его и сгенерировать отчет?
В качестве альтернативы, есть ли рекомендованный SQL Server способ решения этой проблемы или как я делаю это лучший способ сделать это?
Упаковка, распаковка и синтаксический анализ строковых данных не содержится в рулевой рубке большинства движков SQL. Подойдя к нему с точки зрения SQL, вы по существу сохраняете пары name: value (динамические поля). Я собираюсь предположить, что все формы будут иметь минимальные общие данные, по крайней мере: создание данных, создание пользователя, идентификатор формы и т.д.
Итак, с головы до головы вы бы:
Таблица, которая описывает форму: pk, читаемое пользователем имя, список полей и т.д. Таблица, в которой хранятся нединамические поля: pk, form_id и т.д. Таблица, в которой хранятся динамические поля: form_id, имя, значение и т.д.,
Теперь отчет представляет собой простой запрос, соединяющий таблицу desc, статическую таблицу и динамическую таблицу.
Очевидно, это немного упрощенно, но я думаю, вы можете увидеть, с чего это можно сделать. Преимущество состоит в том, что он очень универсален и не привязан к любому техническому интерфейсу.
sql-server
чтобы сделать это понятным. Если нет: для чего нужна система баз данных?