首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >维度建模:如何创建没有代理主键的表?

维度建模:如何创建没有代理主键的表?
EN

Stack Overflow用户
提问于 2018-11-09 00:36:58
回答 2查看 55关注 0票数 1

据我所知,我们在事实表中没有主键,放一个代理键在某种程度上是浪费空间。因此,外键组合是事实表的主键。

但我可能会这样做,因为唯一的关键字可能会在事实表中重复,例如,同一天,在同一家餐厅,同一人支付两次工资。在这个cas中,主键不再是唯一的...

有没有办法在不添加代理键的情况下解决这个问题?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2018-11-09 00:52:20

如果您正在构建这样的表,强烈建议使用主键或唯一键组合,但如果您避免添加PK,则可能需要添加唯一的交易编号,以便您可以将客户编号和交易编号的组合作为键组合。

票数 0
EN

Stack Overflow用户

发布于 2018-12-30 10:09:20

如果您不提供PK,InnoDB会为您提供PK。但它是6个字节并且是隐藏的。与4字节的代理INT相比,它更大!

检查数据;可能有一个“自然”的主键,它是一列或多列的组合。

一般来说,对于DW,我在事实数据表上的唯一索引是PK。然后,我使用“汇总表”进行批量访问。它们更小、更快。在极端情况下,我将清除旧的事实行(通过DROP PARTITION),但会“永远”保留汇总表。这样可以控制磁盘空间,同时几乎不会丢失任何有用的数据。

底线:为每个表提供一个显式的PK。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53212212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档