1

質問フォームに入力フィールドがいくつあるかを(管理者として)選択できるPHPスクリプトがあります。一部のフィールドはオプションではありませんが、somは(好きなだけ)オプションです。

回答を収集するためのMySQLのテーブルは次のようになります。

id | userid | fname | ename | seat | optional

管理者がそれを2つのオプションの入力フィールドにしたい場合、1つの入力されたフォームの結果は、テーブルで3つのトウを取ります。

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

これは本当にこれを保存するための最良の方法ですか?どのようにそれを解決しますか?

また、useridがユーザーに固有であることを確認するにはどうすればよいですか?同じ値が3つの行にあるため、MySQLでキー値の自動インクリメントを使用できません...

4

2 に答える 2

1

ベストプラクティスは、「id」と「optional」の値を別のテーブルに保存することです。次に、「id」ごとに必要な情報を取得します。

于 2013-03-17T10:58:50.297 に答える
1

私がそれを学んだ方法では、複数のテーブルを使用する必要があります。このような:

表1:

id | userid | fname | ename | seat

表2:

userid | optional

Table2.useridは、Table1.useridへの参照です。

次に、提出する必要のあるフィールドを最初のテーブルに配置し、すべてのオプションを2番目のテーブルに配置できます。

あなたの例に従うと、データベースは次のようになります。

表1:

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

表2:

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

ちなみに、なぜTable1にidとuseridの両方があるのですか?

于 2013-03-17T11:05:04.070 に答える