ユーザーがデータをテーブルに送信する単純なアプリケーションがあります。
現在、ユーザーが値を渡すことができるフィールドは 3 つあります。ユーザーが作成した説明リストに応じて、説明列の数が異なるソリューションを見つけようとしています。
これまでのところ、次のことを検討しました。
- user_input テーブルに 1 ~ 15 などの多くの null 可能な説明フィールドを持たせると、ユーザーが定義できる説明フィールドの数が 15 に制限されます。このソリューションは、クエリと保守が非常に簡単ですが、設定されたフィールド数に制限されます。(これは一般的に実行可能で受け入れられる解決策ですか?)
- 各行が入力された 1 つの説明に対応する表を作成します。これにより、ユーザーは無制限の数の説明フィールドを作成できますが、すべての入力をそれぞれ格納すると、1 行ではなく n 行が必要になります。ここで、n は現在の description_list にリンクされている説明の数です。ユーザーは列の数を自由に選択できますが、クエリと保守はそれほど簡単ではありません。
私の現在のテーブルは次のようなものです:
CREATE TABLE `user_input` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`description_list_id` int(11) NOT NULL,
`description1` int(11) NOT NULL,
`description2` int(11) NOT NULL,
`description3` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
他の解決策はありますか?