Построение в соответствии с требованиями пользователя - PullRequest
0 голосов
/ 24 июня 2011

Я создаю веб-приложение, в котором хочу создать форму, настраиваемую для каждого пользователя. Например, пользователь должен иметь возможность указать «Я хочу поле выбора со списком значений, которые я даю вам для ввода A, текстовое поле для ввода B и другое поле выбора со списком значений, которые я даю вам для ввода C» , Затем пользователь может позже заполнить форму в зависимости от того, как он настроил ее. Чтобы было ясно, это не система для создания HTML-форм для вашей собственной веб-страницы. Форма живет и интегрируется с остальной частью приложения.

У меня в голове есть пара идей о том, как это реализовать, но мне любопытно, как другие, создавшие подобные приложения, справлялись с похожими проблемами (то есть настраиваемые системы для каждого пользователя). Меня не волнует конкретный язык или структура, хотя вы можете указать на некоторые, если это поможет объяснить ваше решение.

A) создание довольно сложной схемы реляционной базы данных (требуются таблица User, таблица User_Fields, таблица Fields_SelectValues, а затем для ведения записей таблица SubmittedRecord, которая включает в себя поля с их действительными значениями при отправке. На самом деле, будет должна быть другая таблица SubmittedRecord_FieldValues, которая отображает значения пользовательских полей в заданный SubmittedRecord). Результаты отправки будут затем использоваться в другой части приложения, поэтому поиск по представленным значениям будет сделан очень много. Это самый надежный, но, вероятно, самый медленный в использовании (хорошее количество объединений, чтобы получить всю необходимую дату) и сложный для реализации. Кроме того, это может быть излишним, так как большинство пользователей будут иметь значительное совпадение в том, как они хотят, чтобы все было настроено.

B) Вместо того чтобы собирать все данные, необходимые для построения всего, как описано выше, я сохраняю блоб HTML для каждого пользователя. Тогда у меня может быть поле в таблице SubmittedRecord с именем «Значения», которое представляет собой просто строку с разделителями из имен их полей и отправленных значений. Это делает для быстрого поиска, но медленный, чтобы выбрать на отдельном поле позже. Но в основном я обеспокоен тем, что в этой антиреляционной схеме есть некоторые непредвиденные проблемы, о которых я еще не задумывался.

Как вы видели, как подобные вещи делали раньше?

Примечание: я не обязательно ищу решение моей точной проблемы, просто общие советы по этому типу проблемы.

1 Ответ

0 голосов
/ 25 июня 2011

Опция B звучит как угроза безопасности и кошмар обслуживания.

Опция A звучит намного лучше.

В зависимости от вашей платформы / фреймворка уже должны быть встроенные механизмы, которые помогаютвозможности, связанные с профилем пользователя;поэтому сначала я посмотрю, что в настоящее время существует в выбранной вами платформе.

Я знаю, что в ASP.NET есть несколько механизмов, которые предоставляют решения в этом пространстве.

Большое внимание (которое будетвлияние разработки и внедрения такой системы) будет то, как построить «схему» профиля в первую очередь;это «встроено» в систему или администраторы могут динамически (через пользовательский интерфейс) изменять схему?

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