現在取り組んでいるサイトでコンテストを作成します。各コンテストは同じになることはなく、ユーザーがコンテストに参加するために入力する必要のある入力フィールドの数が異なる場合があります。
コンペティション1には名が必要な場合があります
コンテスト2では、名、姓、メールアドレスが必要になる場合があります。
また、個々のエントリを確認できるように、これらのエントリを監視するツールを構築します。
私の質問は、任意の数のフィールドを格納するための最良の方法は何ですか?私は2つのオプションを考えていました。1つはコンテストのすべてのエントリを含むCSVファイルに各エントリを書き込むこと、もう1つはエントリ全体をテキストとして格納するだけのvarcharフィールドを持つdbテーブルを持つことです。これらの方法はどちらも厄介なようですが、この種のタスクに一般的な方法はありますか?
理論的には、考えられるすべてのフィールドの列を含むdbテーブルを作成できますが、「100語で教えてください...」や「5つの好きなものを入力してください」などの特定の要件がある場合は機能しません。 。」
回答:
競技ごとに異なる目的に利用できる複数のジェネリックカラムがある場合は、以下に説明する方法を使用することにしました。
最初はEAVを使用するつもりでしたが、それでもこの特定のシナリオには少し適切かもしれないと思います。ただし、スケーラビリティが低く、クエリが複雑であるため、一般的には使用しないことをお勧めします。使用する習慣をつけたくありません。私のテストでは、両方の答えが完全にうまくいきました。