我应该将类似的业务流程合并到一个事实表中吗?
Posted
技术标签:
【中文标题】我应该将类似的业务流程合并到一个事实表中吗?【英文标题】:Should I combine similar business processes into one fact table? 【发布时间】:2014-07-03 01:18:14 【问题描述】:我对数据仓库很陌生,所以我对设计的某些方面有点不清楚。我的公司出售会员资格。人们加入成为会员,当然辞职不再是会员。我们有加入日期和辞职日期作为维度。我们会为会员提供一个或两个事实表吗?我在想“成员加入”将是一个事实表,而“成员辞职”将是另一个事实表。或者我们是否将所有内容都包含在一个包含所有会员加入和辞职的事实表中?
【问题讨论】:
您要运行哪些报告?这是一个非常重要的问题。同一个成员可以一遍又一遍地加入和离开吗?它实际上可能更适合缓慢变化的成员维度。选择度量计量进入事实时,如果粒度是相同的,则将它们放在同样的事实中。如果维度完全不同或粒度不同(即按月而不是按日),则仅使用不同的事实 【参考方案1】:数据仓库中的事实和维度表更多地是关于外键关系。所以你可能有一个像这样的事实表:
FactMemberStatus:
MemberId JoinDate ResignDate
然后维度表如:
DimMember
MemberId MemberName MemberPhone MemberAddress Etc.
DimDate
PKDate WeekOfYear MonthOfYear FiscalMonthOfYear Etc.
然后你可以加入JoinDate->PKDate,或者ResignDate->PKDate,你也可以查询一个成员是加入还是退出,如果joindate为null,或者resigndate为null。
在不了解其他情况的情况下,这将是我的第一个想法。
【讨论】:
以上是关于我应该将类似的业务流程合并到一个事实表中吗?的主要内容,如果未能解决你的问题,请参考以下文章
我应该将 BLL 方法直接调用到我的 Asp.Net MVC 3 控制器中吗?
当你在 MySQL 或 PostgreSQL 中有一个 TEXT 字段时,你应该把它放在一个单独的表中吗?