我已经设置了一个Postgresql数据库,其中包含用户表、业务表、活动表和凭证表
每个代金券都有一个父活动,每个活动都有一个父业务,每个用户可以属于一个或多个通过business_user FK表链接的业务。
如何阻止用户更改不属于其所属业务的行?我使用jwt来管理会话,它们存储userId。
我要使用内连接吗?但是,我如何处理多对多的业务和用户关系呢?
发布于 2020-04-09 07:35:26
为了展示这项技术,我需要引用列,因此我做了以下假设:
然后该技术是一个(并存在select...)其中select跟随FK链到业务,从要更新的表到业务,从business_user到业务。所以更新代金券变成了:
update voucher vch
set col = '...'
where vch.id = &vid
and exists
( select null
from campaign camp
join business bus on bus.id = camp.business_id
join business_user bu on bu.business_id = bus.id
where camp.id = vch.campaign_id
and bu.user_id = &uid
); 其中&vid和&uid分别表示vouhcer.id和user.id。
https://stackoverflow.com/questions/61106620
复制相似问题