首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有大部分半加性事实的建模场景

具有大部分半加性事实的建模场景
EN

Stack Overflow用户
提问于 2018-03-01 18:36:48
回答 1查看 414关注 0票数 0

我学习维度建模,并试图创建一个模型。我在考虑一个社交媒体平台来评估酒店的价格。该平台有以下数据:

  • 酒店信息:姓名及地址
  • 用户可以给酒店打分(1-5分)
  • 用户可以写注释。
  • 平台存储注释的日期。
  • 酒店可以通过评论回复,并存储其日期。
  • 该平台存储每个评级级别的总数(即:所有费率有1分,所有费率有2分等等)。
  • 平台存储用户的信息:性别、姓名、他/她的投票总数和地址。

首先,我试图定义哪些信息属于维度或事实表。

(这里我还检查了哪一个是加性/半加性/非加性)

我意识到我的例子有点困难,因为很难决定它是属于事实表还是维度。

我想听听一些建议。有人会同意我的模型吗?

这就是我给它建模的方式:

  • 酒店信息->酒店维数
  • 用户对->加性事实的评价--因为我可以将它们聚合到所有维度
  • 用户注释->半加法?-因为我可以用日期维度聚合它们(我不知道我的论点是否正确,但我知道我每天都会有新的注释,这对我来说是将其存储在事实表中的一个原因)。
  • 回答为注释->,处理方式与用户注释相同
  • 注释日期->维度
  • 所有选票的总数(1/2/3/4/5) ->半加性事实--把它们加在一起是没有意义的,因为它已经是总数了,但我会得到平均数。
  • 用户信息性别和姓名地址->用户维数
  • 用户信息:投票总数->可以是维度或事实。这取决于它变化的频率。如果它经常变化,我会把它储存在一个事实中。如果没有那么频繁,那么维数

我还有疑问,希望有人能帮我:

我的问题是:我应该创建两个日期维度,还是可以将两个信息存储在一个日期维度中?

第二个问题:每个用户和酒店只有一个地址。是否存在参数,以便在自己的层次结构中分隔地址维度?我是否可以创建与用户维度和地址维度的1:1关系?

EN

回答 1

Stack Overflow用户

发布于 2018-03-02 07:56:29

对于您的模型,它看起来考虑得很好,但以下是一些想法:

用户评论(以及对评论的回答):它们是要捕获的事件(正如您提到的,每天都有新的事件),事实也是如此,注释的维度、注释类型、日期,以及度量至少是一个“计数”,这是加性的。但是你不想在一个事实中存储大的文本,所以你会把它单独放在一个1:1的维度中,当你需要查询注释本身的时候。

如你所说,所有选票的总数(1/2/3/4/5)已经达到总数,主要是为了业绩。从原始数据本身来看,总计应该很容易,因此可能根本不值得存储它们。您还可以考虑使用列(酒店A有5 '1‘和4 '2’的选票)更新酒店维度,这样您就可以在继续进行更新,以便于过滤和分类。

用户信息:投票总数:这是关于一个用户的事实信息(维度),这取决于你是否总是只想‘找出’一个人的信息,或者你是否愿意使用它来过滤其他信息(例如,给我展示给那些投票10到20票的用户的所有评论)。在这种情况下,您可能会将总数存储在用户维度中(和/或分带,类似于10-20,20-30的“评论数量范围”)。如果你需要的话,你可以经常更新维度,但是你是对的,它仍然只是一个事实。

至于日期维度,如果“谷物”是“天”,那么您只需要从多个事实中引用一个维度。

至于地址,你说得对,双方都有争论!许多人将地址分离成他们自己的维度,从使用它们的其他维度中引用。Kimball建议,如果有必要,您可以在幕后完成这一任务,但希望每个维度都有自己的一组地址列(但要尽可能一致地建模)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49056489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档