【微服务】Staffjoy 项目源码解析(七)—— Company 模块(2)
一. 模型分析
因为 Company 模块较复杂,数据模型有七个,故进行详细分析,以促进理解。
七个模型包括额外的 (Account)账户 模型的关系如上图所示,下面进行具体分析
Company:
公司 数据模型,是整个数据结构的基础。
Admin:
管理员 数据模型,与公司是多对一的关系,与账户是一对一的关系
属于账户和公司的连接桥梁
查找时是通过 公司 id 和 账户 id 找到对应的 员工目录(Directory)数据作为 Admin 调用
Directory:
员工目录 数据模型
是连接账户与公司。
一个账户对应一个员工目录
一个公司有多个员工目录
被用于 Company 模块中查找指定的 账户信息
包括 Admin 类 ,Directory 类,Shift 类这些涉及具体 账户 信息的类
也是唯一 一个 调用 AccountClient 接口的地方
这是为了尽量确保微服务系统的封闭
Team:
团队 数据模型
一个公司有多个团队
一个团队有多个 任务(Job)
一个团队有多个 成员(Worker)
Job:
任务 数据模型
一个任务有多个 班次(Shift)
Shift:
班次 数据模型
即具体的工作细节,对应到每个 成员
一个班次对应一个成员
Worker:
成员 数据模型
被包括在 团队(Team)中,执行 班次(Shift)
与 账户 是一对一的关系
二. 总结
所以,按数据模型图来看,与 Account 模块的连接有三处
但具体的操作上,只有 Directory 模块与 Account 模块进行了交互,保证了系统的封闭性
这应该是微服务系统的一个重点。
然后,数据应当具体细分,不同的任务,不同的作用,尽量详细,方便区别