Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 字符串作为星型架构中的主键_Sql_Primary Key_Star Schema_Datamart - Fatal编程技术网

Sql 字符串作为星型架构中的主键

Sql 字符串作为星型架构中的主键,sql,primary-key,star-schema,datamart,Sql,Primary Key,Star Schema,Datamart,我们正在创建一个数据集市,由大约8个星形模式组成,每个模式表示一个业务事件、流程或报告数据集。我们拥有事务、快照和累积快照模式的同等组合。我们打算在大多数事实表中用作主键的值是压缩的,但是在源数据库中,这是一个格式为“X12345.001”的字符串 我已经阅读了一些关于使用字符串作为PK的相互矛盾的观点: -本文中的顶部答案表明可以,但问题并非特定于数据集市 -本文的首要答案是坚决反对使用字符串作为PK 数据集市的内容永远不会是巨大的(全明星的数百万行,永远不会是数十亿行)。使用当前的PK(co

我们正在创建一个数据集市,由大约8个星形模式组成,每个模式表示一个业务事件、流程或报告数据集。我们拥有事务、快照和累积快照模式的同等组合。我们打算在大多数事实表中用作主键的值是压缩的,但是在源数据库中,这是一个格式为“X12345.001”的字符串

我已经阅读了一些关于使用字符串作为PK的相互矛盾的观点:

-本文中的顶部答案表明可以,但问题并非特定于数据集市

-本文的首要答案是坚决反对使用字符串作为PK

数据集市的内容永远不会是巨大的(全明星的数百万行,永远不会是数十亿行)。使用当前的PK(construcd)会比较省力,因为这在所有表中都是一致的,但我担心性能。问题是字符串是否可以用作数据集市中的主键


感谢

最后,我们将契约ID存储在一个维度中,该维度可能是正确的,因为该ID更多地是契约的描述(尽管它是唯一的),而事实表的SQL生成ID充当事实表中的FK。事实数据表确实按照您对累积快照的期望,在每个契约中保存多行


我们让SQL处理所有ID,并将事实表中的所有内容限制为整数,在我们看来,性能是惊人的

可以使用字符串,但是否应该使用它?如果可以的话,答案是否定的。事实数据表每个压缩只有一行?我认为这不太可能,但如果你是对的,那么把它作为主键也没什么错。