【发布时间】:2020-09-12 01:29:04
【问题描述】:
我已经开始学习和构建基于微服务的项目,但我总是陷入范围界定的情况并最终创建了一种单体应用。在我下面的 foo-bar 示例中,请建议范围应该是什么以及如何实现所需的输出。
服务或表格
- 员工
- 部门
- 员工-部门-映射
假设
Employee 或 Department 彼此之间没有任何交叉引用所有关系都在第三张表中维护Employee-Department-Mapping
关系可以是One-To-Many 或Many-To-Many 基于企业对企业,在本例中为One-To-Many(与员工的部门)
要求
我想获得部门支付的总工资。类似于下面的查询,这里我对 3 个表进行简单的连接。这只有在所有都在同一个数据库和单个微服务中时才有可能。
Select d.DepartmentName, SUM(e.salary)
from Employee e, Department d, Employee-Department-Mapping c
where d.DepartmentName == c.DepartmentName
AND e.Employee == c.Employee
Group By c.DepatmentId
约束
- employee表有工资信息
- 员工部门关系由第三张表维护。
我不是在寻找确切的答案,而是寻找解决此类问题的方法。 想知道如果您需要聚合输出,您将如何设计您的微服务,您会将所有这些表放在单个微服务中吗?我不想从每个微服务中提取数百万条记录并在内存中进行聚合。
【问题讨论】:
标签: spring-boot architecture microservices