PHP多对多设置ID

时间:2011-09-01 22:11:47

标签: php mysql many-to-many

出于这个问题的目的,我们假设我们使用三个表建立了多对多的关系:

courses - with a id and name
students - with id and name
enrollment - with course_id and student_id

在rails中,如果你执行has_and_belongs_to_many,则可以执行

course.student_ids = [1,2,3,4,5]

rails说它会根据需要添加/删除ID。我想在PHP中做类似的事情。像

这样的东西
set_courses($student_id, array(1,2,3,4,5));

我想知道的是,如果有一种很好的方法可以在PHP中有效地实现它。我可以想办法在3个查询中执行此操作(一个用于获取当前ID,一个用于删除不需要的ID,另一个用于添加新查询)。有没有办法在一个甚至两个查询中执行此操作?

谢谢!

1 个答案:

答案 0 :(得分:2)

如果我正确理解你,你可以在2中完成:

  1. 删除所有当前注册
  2. 插入注册
  3. 但是,我会使用交易来确保两者都被执行。