最好编辑/删除多行(如果存在)的最佳方法

时间:2019-01-02 07:05:15

标签: mysql sql

我有一个表“ roles”,表“ pages”和表“ pages_roles”。

我对每个页面“角色”都有多个选择字段,并且在其中选择给定页面的所有角色。 角色:

常规用户

付费用户

以此类推。

问题是这样的:

当我第一次同时扮演两个角色时,将插入两行。

角色表:

id = 1,角色=常规用户 id = 2,角色=付费用户

roles_access:

id = 1,role_id = 1,page_id = 1 id = 2,role_id = 2,page_id = 1

在第二次编辑中,我具有以下变体:

1)首先删除给定页面的所有当前角色,然后插入选定的角色-无论我是否更改某些内容,这都会在每次保存时非常快速地增加IDs

与上述相同,但ID不同: id = 3,role_id = 1,page_id = 1 id = 3,role_id = 2,page_id = 1

2)我删除所有未选择的记录,然后对已选择的记录进行UINSERT。 这将起作用-对于不存在的角色,它们将保留表的ID(roles_pages)。

但是有点复杂。

那么您对此有更好或更聪明的方法吗?

谢谢

0 个答案:

没有答案