首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >销售人员(区域经理、区域经理、国家/地区负责人)链接到事实表

销售人员(区域经理、区域经理、国家/地区负责人)链接到事实表
EN

Stack Overflow用户
提问于 2020-10-30 18:20:24
回答 2查看 31关注 0票数 1

我有一个小型的销售数据仓库。这里我有销售发票的事实表和维度,如客户,日期,时间,销售地域,产品代码。

事实表:Sales ->

代码语言:javascript
复制
Invoice Date, Customer code, Product Code, Sales Geo Code, Billing qty, Amount, Tax, Total Amount

对于Sales Geo dimension ->

代码语言:javascript
复制
Sales Geo Code, City Name, Regional Code, Zone Code, Regional Manager Code, Zonal Manager code  

我在如何联系我的销售人员,如区域经理和区域经理等方面感到困惑。

区域经理领导多个城市的一个区域,区域经理领导多个区域。

有时我们改变区域或区域,他们得到提升,他们离开等等。

如何创建维度,并将销售团队与销售事实联系起来,以获得正确的销售报告。

问候

EN

回答 2

Stack Overflow用户

发布于 2020-10-30 19:20:18

我能想到几个选项:

  1. 将区域和区域经理信息反规范化到您的销售地理位置Dimension
  2. Create一个以区域经理为关键字并包括区域经理详细信息的层级经理维
  3. 创建人员维度并将其与事实关联两次-一次是区域经理角色,另一次是区域经理

角色

如果除了在Sales Geo的上下文中,您永远不想将Manager信息链接到事实,那么选项1可能更有意义-因为使用此事实表的查询中的潜在联接较少。

选项2更灵活,因为您可以将经理信息与事实相关联,而无需使用Sales Geo

选项3是最灵活的,但也可能给出最差的查询性能(对于任何需要两种类型的管理器的查询),而且区域管理器和区域管理器之间的唯一联系是通过事实;维度中没有层次结构信息。因此,选项3是我最不可能选择的选项

票数 0
EN

Stack Overflow用户

发布于 2020-10-30 21:21:20

对事实数据表中的区域经理代码和区域经理代码进行非规范化

因此,基本上您将在每个事实行中存储Sales Geo Code以及在销售时两个经理角色的当前分配(在加载记录时更精确)。

此模型允许这两种类型的报告使用

在事务处理时分配的

  • 管理器(直接从事实数据表分配)和

  • 当前经理(从事实表连接到Sales Geo维,以获取这两个经理的代码)

现在,您的设置只允许第二种类型的报告,这在经理经常被重新分配的情况下可能是次优的。

如果您不希望对事实表进行非规范化,您可以随时将Sales Geo维度切换为SCDType2,这将引入维度和经理分配的历史视图。

您不仅需要使用Sales Geo Code从事实表连接到Sales Geo维度,还需要考虑事务日期……

代码语言:javascript
复制
Invoice_Date between sales_geo.validfrom_date and sales_geo.validto_date 

..。以获取在事务处理时分配的经理。

该决策在存储和维护一致性与更复杂的连接和维护另一端的维度历史之间具有典型的折衷。

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

https://stackoverflow.com/questions/64606496

复制
相关文章

相似问题

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