11

ユーザーがデータをテーブルに送信する単純なアプリケーションがあります。

現在、ユーザーが値を渡すことができるフィールドは 3 つあります。ユーザーが作成した説明リストに応じて、説明列の数が異なるソリューションを見つけようとしています。

これまでのところ、次のことを検討しました。

  1. user_input テーブルに 1 ~ 15 などの多くの null 可能な説明フィールドを持たせると、ユーザーが定義できる説明フィールドの数が 15 に制限されます。このソリューションは、クエリと保守が非常に簡単ですが、設定されたフィールド数に制限されます。(これは一般的に実行可能で受け入れられる解決策ですか?)
  2. 各行が入力された 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;

他の解決策はありますか?

4

2 に答える 2

4

2 番目のソリューションは、柔軟性の点で好ましいです。明日、最初のソリューションでさらに説明フィールドを追加する必要がある場合は、テーブルとそれを管理するコードを変更する必要があります。

2 番目の解決策では、もう少し作業が必要になる可能性がありますが、200 のような記述を 2 つ処理できます。

最初のアプローチは、小さな問題に対する迅速かつ汚い解決策であり、2 番目のアプローチは、何か新しいことを試す時間があれば、良い練習になります。

于 2013-10-21T17:34:45.007 に答える