数据报表数据库架构-无模式数据库
灵感来源于洗澡
被传统数据库,关键字、主键、不同数据不同数据表之间的互相关联查询折磨后,有根据jaeger的数据关联得到了一个想法。也相当于是扩展一个辅助表,来对一些业务进行聚合。
传统解决方案
往往根据不同业务之间根据业务的特性来设计数据表的结构,也就意味着一个表的字段、数据存储类型都不太一致。不同业务之间需要通过关键字来进行关联查询,因为业务过多就会导致写的sql语句过于复杂。
比如说小明办理B站大会员,那要知道小明有没有爱奇艺会员,是不是就需要去爱奇艺的会员数据查询,那么其他会员又没有办理是不是又要去查询其他的数据库系统。
新思路
如果把小明和他的身份证明通过MD5加密生成一个personal-ID,并且在表里生成一个context来存储小明的信息,再通过MD5一致性来进行溯源分析小明开通过什么业务。每次小明新开通的会员通过personal-ID生成一个packet,将personal-ID放置在头部表示这个业务是开通给小明的,同样放入和有小明context的表中。那么每次查询小明的personal-ID就会出现小明的个人信息和办理过的业务。
解决
在不改变原有数据库的结构下,通过中间件生成personal-ID,办理的业务同理通过中间件进行二次封装。原有数据库照样存储原有信息,通过新表来存储小明办理的业务。
解决了什么
解决固定结构数据库无法存储多种类型的数据
解决查询同一人下的个人信息需要通过其他报表支撑
优化数据存储的结构,方便生成各类报表