与其他维度一样,让 OLAP 多维数据集的时间维度位于其自己的表中似乎是一种常见的做法。
我的问题是:为什么?
我根本看不出将一个time_dimension
表(int, timestamp)
与某个time_id
外键上的多维数据集连接起来有什么好处,而不是timestamp
在多维数据集本身中有一个列。
原则上,时间点是不可变的和恒定的,它们是它们自己的价值。我发现人们不太可能想要更改给定的关联值time_id
。
此外,timestamp
列类型为 4 字节宽(在 MySQL 中),int
否则通常是键的类型,因此也不能节省空间。
在与我的同事讨论这个问题时,我能够提出的唯一有点明智的论点是与其他维度的一致性。但我觉得这个论点相当薄弱。