我想在MySQL数据仓库中处理日期维度。(我是DW世界中的新手)

我在google上进行了一些搜索,看到了很多表结构(大部分)日期维度,其中主键是一个简单的UNSIGNED INTEGER

为什么不使用DATE字段作为主键,因为在MySQL中,INTEGER是3字节VS 4字节?

例如: 通用标签

VS 通用标签

有帮助吗?

解决方案

如果您的表中的列属于date类型,并且没有两行具有相同的日期,那么您可以肯定地将此列用作PRIMARY KEY

您看到许多示例,其中主键是一个简单的基因标签代码,因为在许多情况下,没有完美的主键候选对象。UNSIGNED INTEGER允许在插入过程中数据库自动填充此列(并且是唯一的)。

其他提示

日期维度是一种特殊的方法-实际上,首选使用具有日期(2011-12-07)或与日期相关的整数(20111207)作为主键。这样可以对事实表进行很好的分区(按日期)。

对于其他类型的尺寸,建议使用替代键(整数)。

作为模板,每个维度通常都有unknown, not entered, error, ...的条目,这些条目通常与Key 0, -1, -2, ...的键匹配。

由于此,更常见的是找到整数格式的日期(20111207)作为主键而不是日期-用日期类型的键表示unknown, not entered, error, ...有点麻烦。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top