字段隔离方案

  • 字段隔离为BladeX 默认必选 的方案
  • 若要生效租户插件,则需要在租户业务的表内增加tenant_id字段,并且对应表的实体类继承TenantEntity或者增加tenantId字段
  • 有些多租户系统会采用纯数据库隔离的方案,这样也就不需要使用tenant_id字段,但这个成本过于昂贵,可选性相对较低
  • 对于BladeX来说,需要考虑的元素很多,比如需要考虑到具体硬件资源、运维难度、后续系统升级难度、同时支持多种隔离方案等情况,所以会以最基础的字段隔离作为 默认方案

字段隔离配置

  1. 需要数据隔离的业务表,新建一个字段,tenant_id
  2. 实体类继承TenantEntity或者加入tenantId属性,框架底层会自动对tenant_id进行处理
  3. 当系统启动的时候,会自动识别包含tenantId的类,并将其加载入多租户插件自动启用
  4. 若需要自行定制,有了tenantId但不需要多租户插件的自动介入,可以通过配置进行排除,这样就可以自行定义复杂逻辑了,具体配置如下
# 租户表维护
blade:
  #多租户配置
  tenant:
    #多租户对应字段
    column: tenant_id
    #排除多租户逻辑
    exclude-tables:
      - tb_news
      - tb_goods
    ......................