考虑一个众筹系统,世界上任何人都可以投资一个项目。
我有规范化的数据库设计,现在我正在尝试创建一个数据仓库(OLAP)。
我想出了以下几点:
这已被非规范化,我选择 Investment 作为事实表,因为我认为以下示例可能是有用的业务需求:
- 按项目类型查看投资
- 按时间段进行的投资,即每周进行的投资总额等。
阅读了一些资料(数据仓库工具包:Ralph Kimball)后,我觉得我的模式不太正确。这本书说要声明谷物(在我的情况下是每个Investment),然后在声明的谷物的上下文中添加事实。
我列出的一些事实似乎与实际情况不符:TotalNumberOfInvestors、TotalAmountInvestedInProject、PercentOfProjectTarget。
但我觉得这些可能很有用,因为您可以看到这些金额在投资时是多少。
这些事实看起来合适吗?最后,TotalNumberOfInvestors事实是否隐含地参考了 Investor 维度?