这种数据结构有名称吗?

时间:2010-11-11 17:51:27

标签: database database-design data-structures rdbms star-schema

是否存在Star Schema类型的名称,其中有一个Fact table,其中有一列值,而值的类型(度量)由{{定义3}}?

换句话说,像这样的表:

Dim1ID     Dim2ID       MeasureID      Value
---------  -----------  -------------  ------------
543        44           1              234.3
543        45           1              256.3
544        44           1              245.3
544        45           1              264.5
543        44           2              10
543        45           2              8
544        44           2              9
544        45           2              10

使用一个值列,通过外键表示不同的度量。

这个模式有名称吗?

3 个答案:

答案 0 :(得分:2)

或许

Entity-Attribute-Value Model

社论:有些人认为这是反模式(在SQL中),但在基于列的商店中,这是常用行为(BigTable,Cassandra)。

答案 1 :(得分:0)

在我看来,由于MeasureID会引用列出所有可能措施的表格,因此您只需要一个包含三个维度的星型图表,其中一个维度名为“度量”。

答案 2 :(得分:0)

我只称它为4D表:三个关键属性和一个非关键属性。我认为它不需要特殊名称。

我前段时间使用过几乎相同的型号。我们有超过8000个措施和数十亿行。在我们使用它的DBMS中创建具有1000列的表是完全不切实际的(并且是不必要的)。对于大多数行的大多数度量,“宽”行版本根本没有任何值。因此,我们要么必须为不存在的数据生成空值或虚拟值,要么我们必须创建数百个“更窄”的表,其中包含几乎任意的度量集。 “垂直”模型更有意义,并且与正确的DBMS相得益彰。

我不同意您的设计未正确规范化的建议。只要所有度量都是相同的数据类型,那么它就是合法的设计,并且至少是第5范式(假设维度和度量标识符构成关键字)。如果强制使用空值,那么具有大量列的替代设计肯定不会被标准化。