假设存在一个业务场景A:在气象系统中,我需要根据不同的天气类型查询出不同的数据,同时我的数据是由检测对象进行数据的入库,每个检测对象包含六种检验指标,每种检验指标是由该地区的雷达气象站的数据进行模型运算得出。每条数据按照3小时间隔入库,但每种气象类型只包含0到3种不同的检验指标,如果是这种我们应该如何设计数据库呢?
现在的问题点是 检验指标和检验数值的设计问题
目前的方案有两种,分别是
- 将检验指标和值用两个字段标识
- 将每个检验指标都设计一个字段进行存储
方案1
方案1 是采用列换行,保证每个数据都是满足要求的而且是够用的,但存在的问题是冗余字段较多,而且每次入库的数据量为
方案2
方案2 采用的是行换列,保证每一列存储的数据都是足够使用的甚至不是改天气类型使用的,但这种模式的好处是降低了索引行的数量。
从查询效率的角度上来说方案2优于方案1,但是从设计规范程度上来说,方案1优于方案2。根据目前的情况适当放弃规范化程度会提升查询的性能(减少索引的层级和数量)