我有一个表“ 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)。
但是有点复杂。
那么您对此有更好或更聪明的方法吗?
谢谢