关于微服务服务的数据库设计
来源:2-3 数据库设计概述

慕粉3890137
2018-01-26
用户模块一般作为独立的服务数据库,比如其它业务模块(订单模块) 我的每笔订单都是跟人绑定的。这里是需要用表join的。类似于这样的业务数据应该有很多,这样的表结构如何划分微服务。
写回答
1回答
-
格鲁
2018-01-26
微服务改造时要以限定上下文进行拆分,假设订单和用户分属两个不同的限定上下文。根据实际经验,用户通常作为一个最基础的服务,用户涉及的关联关系很多,为防止用户服务变的过于庞大,关联关系往往分拆到其它领域模型中进行维护,比如订单用户关系会放在订单服务中维护。
微服务拆分后,对于订单查询的场景,可以从订单用户关系表中的userid来查询出订单id列表,然后通过订单id列表查询订单表。对于多维度条件、分页、范围查询的场景可以将用户和订单表合并成一个宽表输出到ES中,来解决跨库join的问题00
相似问题