寻找数据仓库架构设计的输入。这是场景:
我有一个基于UserId加入的操作表和用户表,以获取有关执行操作的用户的详细信息。
Action Table:
UserId Action
123 Test001
User Table:
UserId UserName
123 Adam
现在,我们必须将用户迁移到新的用户管理系统(UMS),以下是它的工作原理:
现在,当我们进行报告时,我们必须公开历史和新的行动数据。想知道什么应该是理想的架构设计,以便我们可以报告历史和&新操作并将它们映射到正确的用户。
平台:SQL Server 2016,Analysis Services
如果您需要更多详细信息,请与我们联系。
答案 0 :(得分:1)
您尚未向我们提供有关如何完成此操作的详细信息,因此sql-server
标记对我们没有任何帮助。这更像是一个建模问题。
当您谈到列的新ID时,必须在创建所述密钥期间采取某种方式来确保完整性,该过程将在某种程度上决定您必须提供解决方案的方法。
User表看起来是一个唯一值表,并且创建了“Modern Key”,如果您可以编辑此表,则应在此处添加“legacy key”。这成为您的映射表,映射表不必是单独的对象。
答案 1 :(得分:0)
同意之前的回答。当您的上游团队执行向UMS的迁移时,他们应该以某种方式保留旧版用户ID和现代用户ID之间的映射。在仓库的下游,我建议您将两个ID保存在用户维度表中,但在此表中生成一个代理键,该代理键将用作主键(它可以只是一个增量整数)。这样,您可以将代理键用作Action事实表中的外键,无论用户是现代用户还是旧用户。
以下是我的表格数据模型设计建议:
DIM_USER
- USER_KEY (pk)
- USER_ID
- USER_ID_LEGACY
- USERNAME
- ....
DIM_ACTION
- ACTION_KEY (pk)
- ACTION
- ....
FACT_ACTION
- USER_KEY
- ACTION_KEY
- ....