如何在一个维度中处理SQL Server数据库表中的相似字段

时间:2019-07-15 18:30:53

标签: sql-server architecture data-warehouse

我正在研究数据仓库解决方案,并且正在尝试从SQL Server数据库中保存的表中构建维度模型。其中一些表包括但不限于客户,客户付款,客户地址等。

数据库中的所有这些表都具有一些在每个表中重复多次的字段,即记录更新日期,记录创建日期,活动标志,关闭标志等。这些表都以某种方式与客户相关,但是这些表可以独立更新。

我正在努力在这些表的背面建立一个或多个维度,但是我正在努力查看如何最好地以优雅的方式处理这些重复的字段,因为它们都被使用了。

在我刚开始的时候,我将感谢有这样的场景经验的人的任何指导

如果需要更多详细信息,我很乐意提供

谢谢

1 个答案:

答案 0 :(得分:0)

在甚至考虑如何将其包括之前,请问这些元数据字段是否甚至需要包含在您的尺寸模型中?如果没有人会使用“客户付款更新日期”(相对于“创建日期”或“付款日期”),请不要将其带入模型。如果客户模型包含当前地址,则也不需要包含CustomerAddress.Active标志。您不需要模型中的每个OLTP字段。

记下您如何谈论对话中的字段。您如何识别当前客户地址?检查CurrentAddress标志(CustomerAddress.IsActive)。客户何时付款?检查客户付款日期(CustomerPayment.PaymentDate或可能是CustomerPayment.CreatedDate)。尝试用通用语言来描述它们。这将在使模型可被用户发现并直观使用方面提供最大的成功。

在模型和源中的列尽可能地命名也将有助于维护和故障排除。

此外,请确保您正确地描绘了实体。客户付款可能与客户处于不同的维度。当前地址可能在客户中,但是如果历史地址详细信息有任何价值,则可以将其与Active标志一起放入其自己的维度中。