1

tbl_Subjects_Taken学生が受講したすべての科目をリストするという名前のテーブルがあります。Stud_IDとの 2 つの列だけで構成されていますSubj_ID

フロントエンドに行くと、ユーザーが学生自身とその学生が受講した科目に関する情報を編集できるフォームがあります。単一の UPDATE ステートメントで作業を実行できるため、更新tbl_Students(学生の情報) は問題ではありません。しかし、他のテーブルはどうですか?

ユーザーがフォームを編集して保存ボタンを押したら、次のようにします。

  1. でその生徒が履修したすべての科目を削除し tbl_Subjects_Takenます。
  2. フォーム (私のプログラム) にあるすべてのサブジェクトを追加します。

これは本当に「多くの側」でテーブルを更新する正しい方法ですか?

私はSQLサーバーを使用しています。

4

1 に答える 1

1

削除して再度追加することは、それを行う 1 つの方法です。

しかし、サーバー上ですべてを実行しようとします (たとえば、ストアド プロシージャを使用します)。サブジェクト ID のリストを SP に渡します。SP内では、次のことを行います。

  1. 渡したリストにないtbl_Subjects_Takenそのユーザーのサブジェクトを削除します
  2. 渡したリストにあっtbl_Subjects_Takenた表になかった件名を追加します。

DBについては言及していませんが、使用しているDBに応じてさまざまな方法があります。たとえば、Oracle と ODP.Net では、PL/SQL 連想配列を使用して ID を PL/SQL 関数/SP に渡すことができます。

しかし、理想的には、1 回のサーバー ラウンド トリップを行い、削除と挿入をできるだけ少なくしたいと考えています。これらの 2 つの手順により、効率が向上するはずです。

于 2012-06-13T18:21:26.143 に答える