Как спроектировать ASP.NET Core - приложение SQL, где пользователь должен иметь возможность создавать формы различных элементов ввода и сохранять значения в базе данных - PullRequest
0 голосов
/ 01 июня 2018

Я начал работать над проектом веб-приложения, где есть особенность: пользователь-администратор может создавать / обновлять несколько пользовательских форм, выбирая различные типы ввода из базы данных, и конечные пользователи могут обновлять данные формы в повторяющемся режиме /иногда ежедневно и данные хранятся в базе данных для дальнейшего использования.Чтобы уточнить, пользователь-администратор может выбрать любой из « checkbox », « textbox », « textarea », « datetime »," температура " и т. Д. Введите типы и создайте форму.Затем конечный пользователь может прочитать форму и ввести значения, которые должны быть сохранены в базе данных для отчета администратору.

Мне нужно использовать ASP.NET Core MVC, SQL, EF, сначала выполнить миграцию кода набэкэнд проекта.

Я думаю, может быть (в качестве примера) Form model with Id and Name properties, TextBox model with Id, Name, FormId, DateTime model with Id, Name, FormId и т. Д. Для создания форм, а затем, когда пользователь вводит значения, которые могут быть обновлены с использованием других моделей / таблиц вбаза данных, как TextBoxRecord model with Id, TextBoxId, Value, UserId, DateEntered etc. Но тогда будет слишком много таблиц для обновления и чтения каждый раз при вводе значений и отображении отчетов для администратора.

Я ценю любую помощь с хорошей идеей проектирования модели данных или какдостичь такой логики.Также не стесняйтесь спрашивать, если у вас есть какие-либо вопросы.Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Для всех, eurhm, людей, которые находят этот интересный вопрос и "хотели бы знать ответ тоже", есть интересная статья, которую можно прочитать на

https://www.red -gate.com / simple-talk / мнение / части мнения / bad-carma /

Эта история началась с (по крайней мере, так же хорошо, как) точно того же типа требований пользователя, что иОП здесь.

(И тем, кто хочет понизить это, потому что «не ответ»: это БОЛЬШЕ ответа, потому что он показывает в деталях ПОЧЕМУ вы НИКОГДА хочу даже начать идти по этому переулку.)

0 голосов
/ 01 июня 2018

Некоторое время назад я работал над каким-то симуляционным проектом.Мы не храним каждое из наших полей формы в БД, потому что мы не хотим обновлять БД каждый раз, когда нам нужно добавить немного new-kind-of-form-field .Мы считаем, что именно HTML + JS решает, какой тип ввода использовать с определенным свойством объекта.

Мы создаем сериализатор, который сериализует структуру формы в xml и сохраняет ее в БД.В этом XML-файле мы сохраняем TableName (EF DataSet<> name) и ColumnName (имя свойства модели) для каждого FormField.

Когда нам нужно показатьФорма для пользователя, мы десериализовываем его из БД, упаковываем в ViewModel (потому что мы не хотим показывать пользователю реальные имена наших таблиц БД) и отправляем его в JavaScript код какJSON.Затем JS создает элемент формы и показывает его пользователю.Когда пользователь отправляет данные, мы снова десериализуем соответствующую форму из БД и обновляем фактические модели в БД, используя данные из пользовательского ввода.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...