请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

不同的服务,折分不同的数据库后,join表,和外键引用这些怎么处理呀?

不同的服务,折分不同的数据库后,join表,和外键引用这些怎么处理呀?

正在回答 回答被采纳积分+3

1回答

wirechen 2018-07-10 22:34:52

1、设计阶段就应该避免服务之间会相互有表关系的依赖。

2、尽量把关联关系写在代码逻辑中代替join连接,易于扩展和维护。

0 回复 有任何疑惑可以回复我~
  • 提问者 少凡 #1
    谢谢回复,如何用代码代替JOIN呢,可以说下吗
    回复 有任何疑惑可以回复我~ 2018-07-10 22:47:18
  • wirechen 回复 提问者 少凡 #2
    比如你原业务是用SQL来实现A表通过字段cid来join B表,现在用代码逻辑来实现就应该查询A对象所有记录存入List集合,然后遍历List集合取每个对象中的cid字段来查询B对象再把AB对象的字段存入一个map或者C对象。当然在一个循环中写dao层的查询是不对的这样会增加对数据库的访问,应该根本具体业务做优化尽量减少对数据库的操作。
    回复 有任何疑惑可以回复我~ 2018-07-10 22:59:42
  • 廖师兄 回复 提问者 少凡 #3
    我来总结下吧。拆了之后,join肯定不会像原生sql那么简单了,可以把join理解为组装数据。
    “不同的服务,折分不同的数据库后”这个说得有点笼统,可以具体到某个业务来说。如果只是单纯的拆成2个库,服务还是一个,那么可以考虑一个服务连2个数据库,这组装数据就方便了,没有跨服务。
    如果是拆分成2个服务,比如课程里的订单和商品服务,那么就只能通过接口来调用。
    回复 有任何疑惑可以回复我~ 2018-07-10 23:05:40
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信