公司管理
1.前言
- 公司管理的本质是数据隔离,实现方式有两种,物理隔离和逻辑隔离
- 物理隔离:使用独立数据库/表,适用于SaaS、客户之间严格隔离的情形
- 逻辑隔离:共用表 + company_id,适用于企业内部子公司、集团架构
- 本章节不考虑SaaS,只考虑企业内部子公司、集团架构,也就是所谓的逻辑隔离
2.核心设计原则
- 采用“统一多公司模型” 架构,默认不可切换公司
- 如需切换,需要创建数据范围规则,即 用户 - 规则 - 公司 这种关联绑定
- 后端根据用户的数据权限返回可选的公司列表,前端下拉切换提交时,后端再进行二轮验证
| 设计点 | 说明 |
|---|---|
| 1. 统一多公司模型 | 所有表都带 company_id,所有查询都带 company_id 条件(少数功能除外) |
| 2. 默认管控 | 用户不可切换公司 |
| 3. 开放数据权限 | 进行配置后开启能访问的公司列表,权限模式为 用户 - 规则 - 公司 |
| 4. 切换公司双重校验 | 前端下拉过滤 + 后端提交时权限校验 |
3.共享模块
- 白名单:所有公司共享,查询时不做company_id筛选
- 上传模块:所有公司共享,查询时不做company_id筛选
- 菜单列表:所有公司共享,查询时不做company_id筛选
- App版本,App菜单:所有公司共享,查询时不做company_id筛选
- 人员-角色-权限:所有公司共享,查询时不做company_id筛选

浙公网安备 33010602011771号