Справка по проектированию базы данных: несколько полей формы, каждое из которых имеет свойства - PullRequest
0 голосов
/ 12 декабря 2011

Итак, я работаю над проектом, в котором есть поля формы (например, имя, адрес электронной почты и т. Д.), И у каждого из этих полей есть свойства (isPrivate, hasPriority)

Обычно с обработкой формы, назначенной пользователям I 'сделать что-то вроде:

Table: Values 
 Columns:  ID - USERID - NAME - EMAIL - PHONE - Field4 ... Field30

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

Table: Values 
 Columns:  ID - USERID - NAME - EMAIL - PHONE - Field4 ... Field30
Table: isPrivate 
 Columns:  ID - USERID - NAME - EMAIL - PHONE - Field4 ... Field30
Table: hasPriority 
 Columns:  ID - USERID - NAME - EMAIL - PHONE - Field4 ... Field30

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

У кого-нибудь есть хорошие решения для такой схемы?Я был бы готов изучить / переключиться на базу данных на основе документов, если это необходимо ...

Ответы [ 2 ]

0 голосов
/ 12 декабря 2011

попробуйте эту схему:

таблица: поле
столбцы: идентификатор, имя, метка, описание, input_type, input_value, состояние

таблица: ответ
столбцы: id,userid, field_id, answer, status

Теперь в 2 таблицах выше приведено определение:

В таблице field будет список всех полей, которые пользователимогли бы заполнить свои ответы будут храниться в отдельной таблице, которая является ответ на статус, это зависит от вас, как вы будете обозначать каждое значение, например:
1 = личное
2 =имеет приоритет
... и т. д.

0 голосов
/ 12 декабря 2011

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

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