我已经建立了一个Postgresql数据库,其中包含用户,业务,活动和凭证表
每个优惠券都有一个父广告系列,每个广告系列都有一个母公司,每个用户可以属于通过business_user FK表链接的一个或多个公司。
如何停止用户更改不属于其所属业务的行? 我使用jwts来管理会话,并且它们存储了userId。
我是否使用内部联接?但是,我该如何处理多对多业务和用户关系呢?
答案 0 :(得分:0)
为了展示该技术,我需要引用各列,因此我做出以下假设:
然后,该技术将应用于(并存在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。