繁体   English   中英

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

[英]Updating existing records in the database due to changes?

数据库表:

task_assignee

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

任务

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

这是场景:

  1. 我创建了一个有两个受让人的任务。 这等于该任务在task_assignee两条记录。 我保存任务。
  2. 我想编辑任务并删除两个受让人之一,然后选择其他人。 因此,仍然等于两个受让人,但其中一个现在不同。

对数据库进行这些更改的最有效方法是什么?

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

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

从要从任务中删除的用户中删除task_assignee中的记录,然后添加要添加的记录,不是更简单。 因此,您只需要两个查询。 从中删除并插入。

您应该保持表的整洁,并且由于task_assignee表没有唯一的ID,因此您可以删除所有不需要的记录。

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

亲切的问候

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM