gpt4 book ai didi

sql - 使用日期维度表比直接存储日期有什么优势?

转载 作者:行者123 更新时间:2023-12-01 20:27:14 26 4
gpt4 key购买 nike

我需要存储相当大的历史数据。我一直在研究存储此类文件的最佳方法。看来数据仓库方法是我需要解决的问题。似乎强烈建议使用日期维度表而不是日期本身。谁能向我解释一下为什么单独的表会更好?我不需要总结任何数据,只需快速有效地访问过去的任何一天即可。我确信我错过了一些东西,但我只是看不出将日期存储在单独的表中比仅将日期存储在我的存档中更好。

我发现了这些有启发性的帖子,但没有什么能完全回答我的问题。

最佳答案

嗯,一个优点是,作为一个维度,您可以在另一个表中存储日期的许多其他属性 - 这是假期、是工作日、是哪个会计季度、某个日期的 UTC 偏移量是多少特定(或多个)时区等。其中一些您可以在运行时计算,但在很多情况下最好(或只能)预先计算。

另一个问题是,如果您只将 DATE 存储在表中,则只有一个选项来指示缺失的日期 (NULL),或者您需要开始编写无意义的标记日期,例如 1900-01-01 来表示一件事(失踪是因为你不知道)和 1899-12-31 表示另一个(失踪是因为任务仍在运行,该人还活着,等等)。如果您使用维度,则可以有多行来表示日期未知/缺失的具体原因,而无需任何“神奇”值。

就我个人而言,我更愿意只存储 DATE,因为它比 INT (!) 小,并且它保留各种与日期相关的属性、执行日期数学的能力等。如果日期丢失的原因很重要,我总是可以在表中添加一列来表明这一点。但我是戴着别人的数据仓库帽子来回答的。

关于sql - 使用日期维度表比直接存储日期有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21312739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com