你的设计是对的。将自由文本作为退化维度包含在事实表中没有任何问题。
只有在评论结构化的情况下(例如,如果它们是标准化的并且实际上与事实记录具有1:M的关系),将评论存储在维度中才有意义。如果它们存储为自由文本,因此与事实有1:1的关系,那么将它们转换为维度是一个很大的错误 - 你最终会得到一个与事实表一样高的维度。在适当的设计中,尺寸宽而短,而事实表则窄而高。高尺寸是一个问题,因为它们在性能方面非常昂贵。
它们也很难使用。比方说,您正在使用PowerBI等报告工具。如果您将自由文本存储为事实表中的退化维度,则使用起来非常简单直观 - 我可以编写如下内容:
Reason for Absence = SELECTEDVALUE( Fact[Description])
并且评论将正确显示在报告中。完成。
但是,如果你在维度中存储相同的评论,那么,祝你好运,弄清楚如何将它们添加到报告中。
不,描述性文本列不应包含在事实表中。相反,此列应包含在维度中。
如果您要报告标签(关键字),我会为这些标签创建一个维度,并解析说明以找到与事实相关联的相应标签。例如,我从描述中看到了2个标签(葬礼和生病)。我会创建一个维度DimAbsentReason来包含这些标记。
如果您需要保留实际描述,则可以为描述创建维度(DimAbsentReason)并与事实表进行适当的关联。