我有一个PHP脚本,您可以(作为管理员)选择问题表单中的输入字段数。有些字段是非可选字段,但是som是(尽可能多的)。
MySQL中用于收集答案的表格如下所示:
id | userid | fname | ename | seat | optional
如果管理员希望它是两个可选的输入字段,那么一个填充表单的结果将在表中占用三个:
| 5 | 3 | Peter | Pan | 4 | |
| | 3 | | | | opt.value1 |
| | 3 | | | | opt.value2 |
这真的是存储它的最好方法吗?你会如何解决它?
而且,我怎样才能确保用户标识对用户来说是唯一的呢?我不能在MySQL中使用自动增量键值,因为相同的值在三行...
答案 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?