我们正在创建一个由大约 8 个星型模式组成的数据集市,每个模式代表一个业务事件、流程或报告数据集。我们有交易、快照和累积快照模式的同等组合。我们打算在大多数事实表中用作主键的值是 ContractID,但是在源数据库中,这是一个格式为“X12345.001”的字符串。
我已经阅读了一些关于使用字符串作为 PK 的相互矛盾的意见:
字符串作为 SQL 数据库中的主键- 本文中的最佳答案表明它可以,但问题不是数据集市特定的。
字符串作为主键?- 本文中的最佳答案是坚决反对使用字符串作为 PK。
数据集市的内容永远不会很大(所有星的低数百万行,永远不会数十亿)。使用当前的 PK (ContractID) 会更省力,因为这将在所有表中保持一致,但我担心性能。问题是字符串是否可以用作数据集市中的主键。
谢谢