单库多租户模式 ,支持租户创建二级代理,代理字段有必要冗余到表里吗?

一个问题

租户可以创建1级代理

租户可以看1级代理的所有数据

1级代理可以看他自己的所有数据

类推 1级代理可以创建2级代理

目前表字段:

1表

tenant_id 租户ID
agent_id 代理ID 如果为0 表示为租户自己的数据
user_id 用户ID

如果想看某个代理的所有数据 直接 select * from table where agent_id = xxx;

如果把agent_id不冗余的情况下,每次都去user表去查当前代理创建的所有用户,然后在回到1表in或者join数据 多了一层查询

如果是你 ,你会采用那种方案?

阅读 1.4k
1 个回答

你业务表涉及到用户的话,假设业务表都加了这个字段,一旦用户挂载的代理变了,那就比较坑了,所有的地方都要改,就看你怎么取舍了,
如果是用户表数据量小,连表就连了,要是挂载的代理确定不会变或者几乎不改变的情况下,冗余肯定是会快很多的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题