每个事件一个事实表?

时间:2014-10-25 14:50:42

标签: database-design database-schema data-warehouse

我为正在考虑开发数据仓库以管理信息的警察部队工作。它包含大约十个数据库中的信息:

  1. 犯罪数据库
  2. 情报数据库
  3. 碰撞数据库
  4. 家庭暴力数据库
  5. 这些事件,例如犯罪,情报等彼此无关。我打算为每个人创建副本数据库。创建复制数据库后,我将尝试创建星型模式/雪花模式。

    我是否每个事件都有一个事实表,例如犯罪事实表,情报事实表等,或者我每个事件都有一个维度?关于每个事件持有不同的信息。例如,犯罪者有犯罪者,受害者和碰撞者都有人。

    我在网上和我的书中找到的所有例子似乎都有一个事实表,除了这一个here

1 个答案:

答案 0 :(得分:1)

关于事实表数量的决定是由以下因素决定的:

  • 实体是否具有“符合”的一致尺寸?
  • 不同实体的事实是否相似?
  • 查询通常是特定于实体还是跨实体?

我可以想象一个系统,你有一个摘要报告系统,它有一个事实表和维度,如:

  • 时间
  • 事件类型
  • 事件发生地点

事实如:

  • 受害者人数
  • 犯罪者人数
  • 回复时间

(或其他)。

然后,您可以拥有一个更详细的数据库,存储不同犯罪的详细级别信息。例如,家庭暴力事件的细节与碰撞事件的细节不同。您不必使用星型模式设计。事实上,我会建议实体关系结构来存储详细数据。