使用 DATE 字段作为 MySQL 日期维度的主键

2023-11-21

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

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

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

Ex:

CREATE TABLE dimDate
id INTEGER UNSIGNED NOT NULL PRIMARY AUTOI_NCREMENT,
date DATE NOT NULL,
dayOfWeek
...

VS

CREATE TABLE dimDate
date DATE NOT NULL PRIMARY,
dayOfWeek
...

日期维度有点特殊——主键具有日期(2011-12-07)或与日期相关的整数(20111207)实际上是首选。这允许对事实表进行良好的分区(按日期)。

对于其他类型的维度,建议使用代理(整数)键。

作为模板,每个维度通常都有以下条目unknown, not entered, error, ...通常与钥匙相匹配0, -1, -2, ...

因此,更常见的是查找整数格式的日期(20111207)作为主键而不是日期 - 它表示起来有点混乱unknown, not entered, error, ...带有日期类型的键。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 DATE 字段作为 MySQL 日期维度的主键 的相关文章

随机推荐

  • 如何将@DataJpaTest与多个数据源一起使用

    我尝试使用注释 DataJpaTest 编写集成测试 我有两个数据源 主要和次要 类配置 结果我有一个错误 expected single matching bean but found 2 primaryDataSource second
  • Windows 中的 CBT 挂钩...“CBT”代表什么?

    这是一个快速的 我开始使用hooks在 Windows 中 我注意到有一种称为 CBT 挂钩的挂钩类型 虽然我从文档中知道它是如何使用的 但 CBT 到底代表什么 我在文档中找到它时遇到了一些困难 CBT 代表 基于计算机的培训 除了启用教
  • CSS 100% 高度主体和元素

    我在使我的一个元素在 100 的整体布局中 100 时遇到问题 我尝试了不同的定位解决方案 最终要么隐藏内容浮动在底部页脚后面 要么内容最终位于页脚后面 并在页脚后面继续 这是我的页面布局
  • 在 Windows 远程服务器中运行命令并获取 C# .NET 中的控制台输出

    我有一个remote server name 视窗 username and password 使用 C Net 我想run a command在远程服务器上并取回console output 有没有办法在 C 中做到这一点 我能够使用运行
  • 从 Base64 编码图像获取尺寸

    我有一个 Angular 应用程序 我需要以下尺寸 Base64 编码的图像 我尝试将其加载到Image 但它只是说它是0x0 const image new Image image src data image jpeg base64 s
  • Zend Lucene 和 Java Lucene 的性能比较

    Zend Lucene和Java Lucene分别是用PHP和java构建的 而PHP语言的水平比java更高 只是想知道这两者在索引构建和数据搜索方面的性能差异有多大 让java创建并重建索引 然后让php使用索引是不是更有效 这是 Ze
  • SQL Server 字符串到 varbinary 的转换

    好的 问题是需要对 2 个表进行合并或联接 一种将文件内容存储为 image 类型或 varbinary max 另一种将文件内容存储为十六进制字符串 如果我将相同的内容上传到两个表中 字符串内容 字节数组到字符串 看起来像这样 appli
  • 三行或更多行文本的纯 CSS 省略号

    是否有一种仅 CSS 的方法 无 JavaScript jQuery 仅显示前两行 如果有三行或更多行 则隐藏多余的行并显示省略号 例如 我怎样才能拿这个小提琴 http jsfiddle net 0yyr3e63 并使它看起来像这样 Lo
  • JavaFX自定义列表视图

    我想问在 JavaFX 中使用自定义对象制作 ListView 的最佳方法 我想要一个每个项目如下所示的列表 我查了一下 发现大多数人都是用细胞工厂的方法来做的 还有其他办法吗 例如使用自定义 fxml 这是我的 fmxl 存档
  • 何时以及为何使用 mysqli_fetch_row、mysqli_fetch_object、mysqli_fetch_assoc、mysqli_fetch_array [重复]

    这个问题在这里已经有答案了 我在某种程度上理解之间的差异mysqli fetch row mysqli fetch object mysqli fetch assoc and mysqli fetch array 我的问题是它们是否如此相似
  • Android:蓝牙和手机扬声器之间切换音频不一致

    我的要求是根据用户选择在蓝牙和手机扬声器之间切换音频 下面是代码片段 AudioTrack for incoming audio to play as below int mMaxJitter AudioTrack getMinBuffer
  • 除了用 Java 实现 Clone 之外,还有其他选择吗?

    在我的 Java 项目中 我有一个由各种类型的交易者组成的向量 这些不同类型的交易者是 Trader 类的子类 现在 我有一个方法 它将 Trader 作为参数并将其存储在向量中 50 次左右 我遇到问题 因为存储同一个对象 50 次只是存
  • Dns.GetHostEntry Method(String) 实际上是做什么的?

    我在文档中找不到任何正确的描述来说明它的实际作用 它是否检查 A 记录或 CNAME 记录或两者都存在 我的理解是 在 NET 4中 如果主机不存在 则会抛出 SocketException 并且我的测试证实了这一点 Dns GetHost
  • xmlSignature java 中的 XSLT 转换?

    我有一个 XML 文档 我正在使用 xmlsignature 签署文档的一部分 在找到摘要之前 我想应用 XSLT 转换 根据我读到的内容 XSLT 转换XML 文档转换为另一种格式 也可以是 XML 现在我很困惑的是 转换后的新文档在哪里
  • Linux虚拟内存系统中一个进程如何尝试访问其他进程的内存

    当我学习Linux中的虚拟内存系统时 我感到很困惑 由于每个进程都有自己的虚拟地址空间和自己的页表 将其虚拟地址转换为物理地址 我是对的吗 它怎么可能尝试错误地访问其他进程的内存 页表中应该没有条目吧 Linux进程可以通过特殊文件 pro
  • 在ggplot2中合并图例

    我有多个情节geom point和一个单一的stat function in ggplot2 有没有办法显示单个图例 df lt data frame x c 1 5 a c 1 2 3 3 3 b c 1 1 1 1 3 1 5 1 5
  • CollectionView.DeferRefresh() 抛出异常

    在某些情况下 由于大量 INotifyChangedProperties 事件 您会进行多次 UI 更新 在这种情况下 当所有属性都像批量设置一样时 您可能只想向 UI 发出一次更改信号 我发现这篇很棒的文章解释了如何推迟 ViewColl
  • 我必须在线程句柄上 CloseHandle() 吗?

    beginthreadex 返回线程的句柄 m hStreamStatsThread HANDLE beginthreadex NULL 0 StreamStatsThread this 0 NULL 例如 如果您需要在像 Terminat
  • 模拟或构建 Jersey InboundJaxrsResponse

    我是一个相当新的球衣开发客户 在一些测试中遇到了一些问题 首先 我也许应该提到我的应用程序都是客户端的 根本没有服务器端的东西 我的问题是我想创建一个Response实例对象InboundJaxrsResponse 到目前为止 我试图通过模
  • 使用 DATE 字段作为 MySQL 日期维度的主键

    我想处理 MySQL 数据仓库中的日期维度 我是DW世界的新手 我用谷歌进行了一些搜索 看到了很多表结构 大部分 日期维度 其中主键是一个简单的UNSIGNED INTEGER 为什么不使用DATE字段作为主键 因为对于 MySQL 它是