B端系统产品,在业务流程线上化后,数据的存储都保存在数据库中,报表成为了必不可少的模块。但是当业务发展后,越来越多字段冗余到报表中,怎么样的表单设计才能既能满足业务需求,又能最大化地减少查询压力,提高速度呢?
在报表模块,数据查询压力通常会给设计带来大量的考验,而数据查询的速度往往看出模块设计者的产品能力。
在数据量少的时候,即使设计上有缺陷功能也能正常运转,但随着业务发展,数据量上升时,一次次的跨表查询都是对数据库表结构设计的考验。一旦产生大量的数据慢查,导致服务器宕机,所产生的损失那将不可估量。
有可能你辛辛苦苦设计好、测试完成、然后上线了,最后一旦在正式服大数据量的环境下运行后,这个模块崩掉了,用不了,这就很让人绝望了。我也有过这样失败的设计经历,所以我总结了一些在报表查询设计上的思路,让报表的设计更加优雅。
一、场景分离
B端产品,需要认清楚产品的边界在哪里很重要,我们要了解功能的角色-路径-场景是什么,也就是“谁在什么情况下用这个功能,是怎么用的?”。只有清楚了解这些后,才能认清产品的边界,知道这个模块需要做什么功能,不需要做什么功能。
同理,报表设计也可以根据不同的场景,设计不同的查询字段。那么,我们先来了解一下字段的类型:
1.基础字段
基础字段指的是无需运算,直接储存在数据库里的字段数据,比如“姓名,手机号,创建时间”等等。
2.复合字段
复合字段是指需要基础字段通过运算后得出的数据,通常不会直接保存在数据库中,比如,“平均时间、总人数、差额”等等,这部分的数据计算往往会造成一定的运算压力,通常也是造成查询速度慢的直接原因。