首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制用户可以在关系数据库中编辑哪些行

限制用户可以在关系数据库中编辑哪些行
EN

Stack Overflow用户
提问于 2020-04-09 01:35:42
回答 1查看 23关注 0票数 0

我已经设置了一个Postgresql数据库,其中包含用户表、业务表、活动表和凭证表

每个代金券都有一个父活动,每个活动都有一个父业务,每个用户可以属于一个或多个通过business_user FK表链接的业务。

如何阻止用户更改不属于其所属业务的行?我使用jwt来管理会话,它们存储userId。

我要使用内连接吗?但是,我如何处理多对多的业务和用户关系呢?

EN

回答 1

Stack Overflow用户

发布于 2020-04-09 07:35:26

为了展示这项技术,我需要引用列,因此我做了以下假设:

  • 每个表都有一个列ID,该列被定义为主键。作为RefTable_id
  • Each表,每个表都有相应的外键列和名称,每个表都有一个非键列

然后该技术是一个(并存在select...)其中select跟随FK链到业务,从要更新的表到业务,从business_user到业务。所以更新代金券变成了:

代码语言:javascript
复制
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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61106620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档