事实表中是否允许使用文本字段?

时间:2009-06-25 21:45:24

标签: data-warehouse multidimensional-array fact

在某些情况下,我可以在事实表格中使用文字字段,例如说明吗?

我目前有一个会议事件的事实表(粮食:每次会议的行数),其中包括日期,客户,位置等多个维度。我需要将会议主题放在事实表中。这是好的,即使它不是一个措施(我还没有看到任何这样的例子)。无法将其移动到单独的维度,因为它总是与事实相同的大小(没有行)。

过去经历中的任何想法或建议?

由于

2 个答案:

答案 0 :(得分:1)

它可以以“简并维度”的形式出现,这个维度如此微不足道,以至于无需为其创建表格。一个常见的例子是发票编号:它们不是指标,但因为它们是如此独特,所以将32位FK与具有128位CHAR(16)字段的发票表一起是错误的经济,与事实表一样多的记录。这应该谨慎进行,因为它们会使事实表行更宽。

如果您有多个退化尺寸,垃圾尺寸通常是更好的选择。当然,如果有一个维度可以合理地附加文本,那就更好了。

答案 1 :(得分:0)

您所描述的内容听起来像是从其他维度而非事实表派生的维度。我已经多次这样做了,我有一个主键结构,一个外键和一个字符串列的组合来表示一个名称。以产品定义为例。送货地点(与各种查询相关联)以另一种形式出现。

考虑以下示例: 地点:劳德代尔堡,西棕榈滩,迈阿密

每个位置可能有多个送货地点。装运地点具有各种属性,如包装系统,Converyor皮带系统,产品重量范围,皮卡类型。所有这些都在查找表中。

所以,我有一个名为ShippingLocation的表,其中包含以下列   - ShippingLocationId(PK)
  - PackagingSystemId(FK)
  - ConveyorBeltTypeId(FK)
  - ProductWeightRangeId(FK)
  - ShippingLocationName VarChar(200)

对我来说,运输地点的名称与定义运输地点的位置相同,并且定义了其属性,这似乎是非常符合逻辑的。我在这里看到的唯一可能的规范化是我可以把它带到一对一的表。 IMO,这是一种无用的规范化。