3

SQLに関しては、私はまったくの初心者です。ASP.NET で調査用のサイトを作成しています。特権管理者ユーザーは調査を作成できます。その後、他の多くの人がアンケートに回答します。

新しいアンケートの一連の質問ができたら、回答を格納するテーブルと INSERT クエリを自動的に作成する最善の方法は何ですか?

アップデート

迅速な対応に感謝します。このシナリオでアンケートの回答をどのように保存するのが最適かは、まだ少しわかりません。各回答者はテーブルの行を取得しますか? その場合、列は「列 1 のエントリによって識別される調査の質問 k に対する回答」になりますか?

4

4 に答える 4

10

調査ごとに新しいテーブルを作成する必要はありません。

アンケート テーブルを作成する (SurveyID、UserID、Name など)

質問テーブルの作成 (QuestionID、SurveyID、QuestionText、SortOrder など)

必要に応じて、複数選択タイプの質問 (OptionID、QuestionID、OptionText など) があると仮定して、オプション テーブルを作成します。

次に、誰かが調査を作成すると、その人のユーザー ID を外部キーとして参照して調査テーブルに挿入し、新しく挿入された調査 ID を取得します。

次に、追加した質問ごとに、上記の SurveyID を外部キーとして使用して、質問テーブルに挿入します。

あなたの編集に答える編集:

申し訳ありませんが、回答の保存についても説明する必要がありました。

SurveyResponses (ResponseID、Name など) という別のテーブルが必要です。別のテーブルを ResponseAnswers(ResponseAnswerID、SurveyID、ResponseID、QuestionID、AnswerText/AnswerID) と呼びます。ここで、SurveyID と ResponseID はそれぞれのテーブルへの外部キーであり、ユーザーが複数の選択肢を持っているか、回答を入力するかどうかにかかわらず、回答を text(varchar) または別の外部キーとしてオプション テーブルに保存します。

于 2009-02-25T05:21:23.347 に答える
1

おそらく、プログラムでスキーマを生成したくないでしょう。

代わりに、調査、質問 (調査に属する)、回答セット (ユーザーごとに 1 つ)、および質問の回答 (回答セットに属する) のテーブルを用意します。

于 2009-02-25T05:20:14.880 に答える
-1

テーブルを自動的に構築することはありません。テーブルは事前定義され、回答が追加されます。最近、ASP.NET を使い始める最善の方法は、MVC と Linq (http://asp.net/learn )に飛び込むことだと思います。

于 2009-02-25T05:24:26.803 に答える