nem*_*ems 9 mysql schema date data-warehouse dimension
我想在MySQL数据仓库中处理日期维度.(我是DW世界的新手)
我在google上进行了一些搜索,看到了很多表结构(大部分)日期维度,其中主键很简单UNSIGNED INTEGER
.
为什么不使用DATE
字段作为主键,因为使用MySQL它是3字节VS 4字节INTEGER
?
例如:
CREATE TABLE dimDate
id INTEGER UNSIGNED NOT NULL PRIMARY AUTOI_NCREMENT,
date DATE NOT NULL,
dayOfWeek
...
Run Code Online (Sandbox Code Playgroud)
VS
CREATE TABLE dimDate
date DATE NOT NULL PRIMARY,
dayOfWeek
...
Run Code Online (Sandbox Code Playgroud)
Dam*_*vic 21
日期维度是一种特殊的 - 主键的日期(2011-12-07)或日期相关的整数(20111207)实际上是首选.这允许事实表的良好分区(按日期).
对于其他类型的尺寸,建议使用代理(整数)键.
作为模板,每个维度通常具有unknown, not entered, error, ...
通常与键匹配的条目0, -1, -2, ...
因此,更常见的是将整数格式的日期(20111207)作为主键而不是日期 - unknown, not entered, error, ...
使用日期类型键表示有点混乱 .
ype*_*eᵀᴹ 10
如果您的表具有date
类型的列,并且没有两行将具有相同的日期,那么您肯定可以使用此列作为PRIMARY KEY
.
您可以看到许多示例,其中主键很简单,UNSIGNED INTEGER
因为很多情况下主键没有完美的候选者.在AUTO_INCREMENT
允许此列由数据库被自动填充(和是唯一的)插入期间.