当前位置: 首页 > 面试题库 >

数据仓库-缓慢更改具有多对多关系的维度

东门焕
2023-03-14
问题内容

html" target="_blank">举例来说,假设我有一个包含两个维度和一个度量的事实表

FactMoney表

ProjectKey int

PersonKey int

现金金额

这两个维度的定义如下:

DimProject(类型0尺寸-即静态)

ProjectKey int

项目名称varchar(50)

DimPerson(类型2缓慢变化的尺寸)

PersonKey int

PersonNaturalKey int

PersonName varchar(50)

EffectiveStartDate日期时间

EffectiveEndDate日期时间

IsCurrent位

到目前为止非常简单。现在,我将介绍“人员类别”概念。

点心类别

CategoryKey整数

CategoryName varchar(50)

并在DimPerson和DimCategory之间建立M2M关系

BridgePerson类别

PersonKey int

CategoryKey整数

所以-人们可以有1..n个类别。

我的问题是-
由于Person是一个缓慢变化的维度,当一个人的名字更改时,我们添加一个新的person行并更新我们的生效日期,并且它是当前标记,没什么大不了的。

但是,我们如何处理此人的类别?每当出现新的人员版本时,我们是否需要向桥表添加更多行?

作为推论,如果一个人的类别发生变化,这是否意味着我们需要在person表中创建一个新行?


问题答案:

关于您的主要问题:我想说您需要在类别表中添加类别(可能是从老人行中复制它们)。因此,您可以继续对处于新(更改)状态的人员进行分类。

关于类别更改:我宁愿不添加人员行,而是在类别表中添加初始有效期和到期日期。这样,每个类别都可以单独更改。但是您需要注意不要进行时间点查询,因为这样会使类别过多



 类似资料:
  • 问题内容: 在像mySQL这样的RDBMS数据库中处理多对多关系的最佳方法是什么? 尝试使用数据透视表来跟踪关系,但这会导致以下任一情况: 规范化被抛在后面 空或空的列 您采取了什么方法来支持多对多关系? 问题答案: 在 专门针对该关系 的 表 (有时称为 联结表 )中跟踪多对多关系。该表将该关系建模为指向相反方向的两个一对多关系。 然后,您可以使用联结表通过外键 通过它 联接 其他表 。

  • 问题内容: 我正在使用PHP。 我有以下具有关系数据(父子关系)的数组。 我需要采用这种JSON格式: 我知道我需要创建一个多维数组并通过json_encode()运行它。我还认为,用于此操作的此方法必须是递归的,因为现实世界中的数据可能具有未知数量的级别。 我很高兴展示我的一些方法,但是它们没有用。 谁能帮我? 我被要求分享我的工作。这是我尝试过的方法,但还没有达到我所不知道的帮助程度。 我做了

  • 我正在努力理解如何处理与JOOQ的一对多和多对多关系的Pojo。 我存储玩家创建的位置(一对多关系)。一个位置可以容纳多个可能访问它的其他玩家(多对多)。数据库布局可归结为以下内容: 在我的java应用程序中,所有这些信息都存储在一个pojo中。请注意,玩家和受邀玩家列表可以从应用程序中更新,也需要在数据库中更新: 我可以使用JOOQ的pojo映射将这三个记录映射到单个pojo吗?我可以使用这个p

  • 问题内容: 我已经阅读了许多有关 多维到单维 , 多维数据库 等的文章,但是所有答案都无济于事。我确实在Google上找到了很多文档,但是这些文档仅提供背景信息,而没有回答眼前的问题。 我有很多彼此相关的字符串。PHP脚本中需要它们。该结构是分层的。这是一个例子。 每个缩进在多维数组中都假定一个新级别。 目的是通过名称及其所有后代检索具有PHP的元素。例如,如果我查询A,我想接收一个包含的字符串数

  • 本文向大家介绍多维数据库,包括了多维数据库的使用技巧和注意事项,需要的朋友参考一下 多维数据库主要用于OLAP(在线分析处理)和数据仓库。它们可用于向用户显示多维数据。 多维数据库是从多个关系数据库创建的。关系数据库允许用户以查询形式访问数据,而多维数据库则允许用户提出与业务或市场趋势有关的分析性问题。 多维数据库使用MOLAP(多维在线分析处理)来访问其数据。它们允许用户通过相当快地生成和分析数

  • 问题内容: 有三个表:,并且,医院能提供的医疗服务和语言服务。因此,存在两个多对多关系。 简单ERD 现在,我想使用和搜索医院数据。 DaoImpl: 而且,如果我想从三个表中按邮政编码,医疗类型和语言进行搜索,那么如何编写一个jsql。 警告: 错误:org.hibernate.hql.internal.ast.ErrorCounter- 预期加入的路径!希望加入的路径!在org.hiberna