由于更改,更新数据库中的现有记录?

时间:2017-03-13 08:56:10

标签: php mysql codeigniter

数据库表:

task_assignee

------------------------------
| id | task_id | assignee_id |
------------------------------
| 1  |    3    |       2     |  
| 2  |    3    |       5     |

任务

---------------------------
| id | content | category |
---------------------------
| 3  | 'Bake'  |   'A'    |

以下是该方案:

  1. 我创建了一个有两个受让人的任务。对于该任务,这等于task_assignee中的两个记录。我保存了这个任务。
  2. 我想编辑任务并删除其中一个受理人,然后选择其他人。所以,仍然等于两个受让人,其中只有一个现在不同。
  3. 对数据库进行这些更改的最有效方法是什么?

    我正在考虑向task_assignee添加另一列,它将作为我将要更新的各种标志。如果未选中受让人,我会将其设置为0,如果已选中,则将其设置为1,但我不确定这是否是一件好事,而且我不认为这可以涵盖选择新受让人的时间。 我能想到的是一个繁琐的循环,它将检查为该任务选择的新受让人是否已经在task_assignee中,如果它已经附加到该任务,如果不是,那么它会插入一个新任务。

    我还想过先删除过去的记录然后插入新记录,但我不确定这是否有效? - >添加新受让人时

1 个答案:

答案 0 :(得分:0)

从要从任务中删除的用户中删除task_assignee中的记录并添加要添加的记录不是更简单。所以你只需要两个查询。 从中删除并插入。

您应该尽可能保持表的清洁,因为task_assignee表没有唯一ID,您可以删除所有不需要的记录。

如上所述,您还可以执行更新方法。我更喜欢删除并再次添加它。只是一种习惯的力量。

亲切的问候