1
Distand 2023-03-27 20:13:36 +08:00
跨多个服务筛选条件还要支持同时查是做不了分页的
1. 说服产品两个服务的条件不同时查 2. 合并数据, 譬如搞个 es 把订单信息分组都整进去 3. 说服不了产品又不想增加依赖, 那就只能按你说的查了, 评估下哪边的条件区分度更高就先查哪个 |
2
crazyweeds 2023-03-27 20:34:46 +08:00
如果这是后台管理系统的需求,可以从 MySQL 的特性入手,MySQL 支持把多张表映射到一个库里面,这样关联查询就完事了。。如果是 C 端需求,思路其实差不多,只不过成本很高,把读拆分出去,把数据同步到 OLAP ,查询通过 OLAP 实现,如果是 MySQL ,那么就是 binlog 同步之类的方案了,就像你说的,别扭。除非这个需求真的非常重要,不然真的如同楼上所说。
|
3
hhjswf 2023-03-27 20:42:05 +08:00 via Android
es 做个宽表吧
|
4
sniperking1234 OP |
5
xuanbg 2023-03-27 22:09:54 +08:00 1
我说一个按组织机构查自己管辖业务的办法吧。因为组织机构的上下级关系在基础平台上,业务表只有机构 ID 。所以呢,先要调用组织机构服务获取用户所在机构以及下级机构的 ID 集合,然后用这个集合作为条件去查询业务。
OP 你这个也是差不多,先要根据分组拿到订单 ID 的集合,然后用这个集合做为查询条件。不过,如果订单 ID 数量很多的话,拼出来的 SQL 可能会超长,并且效率也会不太行。所以,就不要硬把同一个领域的数据拆分成两个数据库了。直接联表查询就好了。 |
6
sniperking1234 OP @xuanbg 多谢回答,我参考下这个方法
|