2013-03-17 5 views
1

У меня есть скрипт PHP, где вы можете (как администратор) выбирать, сколько полей ввода будет в форме вопроса. Некоторые из полей не являются необязательными, но som (сколько угодно).Как построить таблицу с динамическими полями ввода?

В таблице MySQL для сбора ответов выглядит следующим образом:

id | userid | fname | ename | seat | optional 

Если администратор хочет, чтобы это было два дополнительными ввод-полей то результат одной заполненной формы будет принимать три буксира в таблице:

| 5 | 3 | Peter | Pan | 4 |   | 
| | 3 |  |  | | opt.value1 | 
| | 3 |  |  | | opt.value2 | 

Действительно ли это лучший способ его хранения? Как бы вы решили?

А также, как я могу сделать shure, что идентификатор пользователя уникален для пользователя? Я не могу использовать значение ключевого значения auto-increment в MySQL, потому что одно и то же значение находится на трех строках ...

ответ

1

Как я узнал, вам нужно использовать несколько таблиц. Как это:

Table1:

id | userid | fname | ename | seat 

Table2:

userid | optional 

Table2.userid является ссылкой на Table1.userid

Тогда поля, которые должны быть поданы может быть поставлен в первую таблицу и все дополнительные во втором.

Если я последовать вашему примеру ваша база данных должна выглядеть следующим образом:

Table1:

id | userid | fname | ename | seat 
5 |  3 | Peter | Pan | 4 

Table2:

userid | optional 
    3 | opt.value1 
    3 | opt.value2 

Кстати, почему у вас есть как идентификатор и идентификатор в таблице 1?

+0

Кажется, лучшее решение! У меня есть id и userid, потому что id имеет отношение к форме вопроса. Возможно, это смущает здесь. – theva

1

Лучшей практикой было бы хранить значения «id» и «optional» в отдельной таблице. Затем вытащите требуемую информацию для каждого «id».

Смежные вопросы