在传统的关系数据仓库设计中,缓慢变化的属性(不经常更改的属性)存储在具有类似于此的模式的表中:
EntityKey,StartDate,EndDate,Attribute1,Attribute2,Attribute3 ......
(这可能与快速更改的属性形成对比,快速更改的属性可以存储为:
EntityKey,Timestamp,Attribute1,Attribute2,Attribute3 ......)
我不喜欢这种方法是有很多重复的信息.如果Attribute1每周更改一次而Attribute2每年更改一次,则最终会每周冗余地重复Attribute2.如果你有很多可以加起来的属性.
当然,你可以为每个时间间隔创建一个这样的表(一个表用于每周属性,一个用于每月,一个用于每年等)但在现实世界中,各种属性将在不同的时间点发生变化,不一定根据任何模式.此外,对于某些实体,相同属性可能比其他实体更频繁地更改.
我很好奇是否有人对这些属性的不同存储模式提出了建议或想法,这些属性不经常改变但频率不同(即每天更改一次,其他每周更改等).也许有些(非关系型)数据库技术我不知道哪种更适合这类问题?