以数据表为单位设计“微服务”,以数据表为单位进行数据拼接,进行真正的“模块化/分子化设计”
- 所有关联数据通过映射关系拼接,避免进行联表查询,比如需要获取多个订单关联的商品数据,则通过goods_ids(多个商品id数组)获取商品数据,并对订单列表遍历一遍拼接到订单数据那边(需要联表查询的字段进行冗余存储,避免联表,如需要按商品的价格查询订单,则商品价格也存储到订单表)
- 包含关系的表增加关联字段,如套餐增加所包含的商品字段(goods_ids),取消关联表,减少读取数据库的环节,编辑或修改、删除商品则对套餐的goods_ids字段进行更新(关联数据不多的情况下可以这么做,分类包含太多的数据,不适合这么处理)
- 进行数据映射时,可以按需索取,比如在订单列表里面只需要商品名称、价格,那读取映射数据时就只读商品id、商品名称、价格,其中商品id用来与订单的goods_id进行对应拼接
- 后台既可以按数据表为单位提供api,也可以对以表为单位提供的api进行组装变成新的api以提供前台需要的数据