如何用动态输入字段构造表?

时间:2013-03-17 10:46:46

标签: php mysql

我有一个PHP脚本,您可以(作为管理员)选择问题表单中的输入字段数。有些字段是非可选字段,但是som是(尽可能多的)。

MySQL中用于收集答案的表格如下所示:

id | userid | fname | ename | seat | optional

如果管理员希望它是两个可选的输入字段,那么一个填充表单的结果将在表中占用三个:

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

这真的是存储它的最好方法吗?你会如何解决它?

而且,我怎样才能确保用户标识对用户来说是唯一的呢?我不能在MySQL中使用自动增量键值,因为相同的值在三行...

2 个答案:

答案 0 :(得分:1)

最佳做法是将“id”和“optional”值存储在单独的表中。 然后为每个“id”提取您想要的信息。

答案 1 :(得分:1)

我学习它的方式你必须使用多个表。像这样:

表1:

id | userid | fname | ename | seat

表2:

userid | optional

Table2.userid是对Table1.userid

的引用

然后,必须归档的字段可以放在第一个表中,所有可选的字段放在第二个表中。

如果我按照您的示例,您的数据库应如下所示:

表1:

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

表2:

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

顺便说一下,为什么在Table1中同时拥有id和userid?