**业务场景:**在12306购票的时候,可以允许添加多个乘车人,并且允许乘车人没有12306的账号回顾一下,咱们订单和订单明细表是按照用户 ID 后六位进行分库分表的,如果是购票用户查看自己的本人车票,通过用户 ID 就能查询。但是,购票时乘车人可能是没有账号的,这个怎么解决?
创建路由表:因为乘车人数据中唯一起到标识作用的也就是证件号,而注册用户证件号也是必须得,因此通过证件号进行数据关联。因此,我们可以通过添加路由表的方式完成这个查询。路由表中通过证件号绑定订单号,再关联订单表和订单明细表,就能查看到乘车人购票的本人车票了。
路由表(订单明细乘车人表)与 订单明细表 数据量事项等的,所以分库分表的数量直接等同订单明细表
但是路由表的分库分表规则不能和订单明细表一致。订单明细表是通过用户ID后六位查询的,但是路由表是按照证件号查询的,规则按照证件号进行HASH_MOD方式分库分表即可;