1

我有一个名为的表tbl_Subjects_Taken,其中列出了学生所学的所有科目。它仅由两列Stud_ID和组成Subj_ID

在前端,我有一个表单,可以让用户编辑有关学生本身和该学生所学科目的信息。更新tbl_Students(学生的信息)不是问题,因为单个 UPDATE 语句就可以完成这项工作。但是另一张桌子呢?

一旦用户编辑了表单并按下了保存按钮,我就是这样做的:

  1. 删除该学生在 中的所有科目 tbl_Subjects_Taken
  2. 添加位于表单中的所有主题(在我的程序中)。

这真的是在“多方”中更新表格的正确方法吗?

我使用SQL 服务器

4

1 回答 1

1

删除和重新添加是一种方法。

但我会尝试在服务器上做所有事情(例如使用存储过程)。我会将主题 ID 列表传递给 SP。在 SP 内部,我会执行以下操作:

  1. tbl_Subjects_Taken为该用户删除不在我传入的列表中的所有主题
  2. 添加我传入的列表中不在tbl_Subjects_Taken表格中的任何主题。

您没有提到您的数据库,但是根据您使用的数据库,有不同的方法可以解决这个问题。例如,在 Oracle 和 ODP.Net 中,您可以使用PL/SQL 关联数组将 ID 传递给您的 PL/SQL 函数/SP。

但理想情况下,您希望让一台服务器往返,并且希望尽可能少地进行删除和插入。这两个步骤应该会产生良好的效率。

于 2012-06-13T18:21:26.143 回答