中台表结构设计难点与方案
2021-12-24 本文已影响0人
黑铁大魔王
中台表结构设计难点与方案
难点
- 不同业态的数据,如何统一保存
- 即使业态相同,但是业务数据属性不同,如何保存?例如:船票与火车票的属性不同
船票有携童信息,火车票有站台信息
方案
相同业态下的方案
- 通过冗余可以收集到相同业态下,所有类型业务的属性,设计业态大表,或多个表
例如:1. 船票与火车票的所有属性放到一个表里,保存船票订单时火车票的站台信息为空,保存火车票订单时,船票的携童信息为空
- 船票与火车票业态表分开保存,在订单详情表中增加业态类型,查询时读取对应的业务表
例如:船票业务对应的业态数据,保存在船票表中,通过订单详情中的业务类型读取相应的业务表
- 缺点:1. 目前对接来游吧的船票系统,有携童属性,如果对接其他的船票系统,会不会增加其他的属性。2. 针对各种业务都要增加相应的表
- 将业务属性通过列转行的方式保存,做到动态可配
如船票业务有 航线,乘船人信息,携童,仓位属性,火车票业务有座位号,站台属性
保存数据时,将属性保存到属性key中,将属性对应的值保存到属性值中,这样就不需要考虑业务,甚至业态
- 缺点:1. 业态表数据会暴增。2. 对于业态数据,没有标准格式接收,代码里仍然需要定制各种不同业态的解析。
- 将业务属性保存在2个表中,一个表保存属性名称,另一个表保存属性值,这2个表的列长度设置为100,保证属性个数足够用
- 缺点:同3
- 业务属性保存成JSON
需要考虑的其他问题
订单业态表里的数据作用是什么?
-
对接履约时,传递的履约信息
对接履约系统时,参数如何标准化
-
查看订单详情时,展示用
业态表的数据入口是什么?
- 创建订单时传入的参数
中台如何提供标准化接口(参数),来支持创建订单。