我有一个参考表,它将跟踪大量年份的给定日期范围,最精细的级别是给定的一天。
几位同事建议我使用代理INT作为密钥,格式为YYYYMMDD。虽然这似乎是合乎逻辑的过程,但我想知道使用简单的DATE数据类型作为PK而不是INT。我的理由是双重的:
答案 0 :(得分:1)
由于我正在进行数据仓库,因此我会使用代理键,并在其他表中引用该键。基于整数的连接仍然比日期数据类型
更快创建一个用日期填充的表,如下所示......并在其他表中使用该日期键。
+---------+-----------+-----+------+----+
|DateKey |Date |Year |Month |Day |
+---------+-----------+-----+------+----+
|20170320 |20-03-2017 |2017 |3 |20 |
|20170321 |21-03-2017 |2017 |3 |20 |
|20170322 |22-03-2017 |2017 |3 |20 |
+---------+-----------+-----+------+----+