我需要设计一种方法,使人们邀请现有用户(属于组织A)加入组织B,然后继续进行设置,以设置他们接受邀请后将对组织B拥有的权限。权限被实现为来自各个表的用户ID的外键。
我的想法是创建一个具有不同ID的“代理”用户,人们可以将权限授予代理用户。然后,当真实用户接受邀请时,我会将所有外键从代理用户ID更新为真实用户ID。
我希望我可以UPDATE "Users" SET id = :realUserId WHERE id = :proxyUserId
来利用我所有ON UPDATE CASCADE
约束中的FOREIGN KEY
子句。但这显然会导致主键冲突,因为:realUserId
已经存在。
我不认为有任何合理的方法可以使Postgres对所有具有Users
外键的表进行级联更新,而无需自行更新Users
?