如何处理微服务数据库关系?

问题描述 投票:0回答:1

我正在研究一个示例微服务项目。 我有教师服务,学生服务,学习服务和体育服务。 我按服务模式使用数据库

老师有很多学生,学生有很多学习数据和体育数据,老师可能会为学生改变

  • 如何处理这种关系?

老师想看他的学生学习和运动数据

  • 在微服务中处理这种情况的最佳方法是什么?

我尝试通过将学生证存储在教师服务中

|---------------------|------------------|
|      teacher_id     |     student_id   |
|---------------------|------------------|
|          12         |         34       |
|---------------------|------------------|

但是在学习服务和体育服务中,我只存储student_id。

获取老师的学生学习和体育数据。 我从教师服务中获取老师的所有学生证,并将其传递给学习服务和体育服务。

我通过Rest GET方法传递了学生ID,并且它越来越长

=====>更新。

如何在所有数据库中存储Teacher_id和Student_id(具有一致性的重复数据)或在第3数据库中(分片数据库)存储

database rest spring-boot microservices spring-cloud
1个回答
1
投票

我认为问题在于您尚未完全探索该域,并且急于想出如何创建数据库关系。 现在,不要专注于数据库密钥的存储位置,因为这不再是第三范式数据库设计。

考虑有限的上下文 。 老师的背景可能很小-老师除了拥有技能外没有“拥有”任何东西。 一个主题有许多班级/科,每个班级/科都有一个老师和学生。 一项运动将有教练和学生。

这样思考可以帮助您弄清楚哪些服务需要包含对自身上下文之外资源的引用。

© www.soinside.com 2019 - 2024. All rights reserved.