Database design 每个事件一个事实表?

Database design 每个事件一个事实表?,database-design,database-schema,data-warehouse,Database Design,Database Schema,Data Warehouse,我在一家警察局工作,该局正在考虑开发一个数据仓库来管理信息。它在大约十个数据库中保存信息: 犯罪数据库 情报数据库 冲突数据库 家庭暴力数据库 这些事件,例如犯罪、情报等,彼此无关。我计划为每一个创建副本数据库。创建复制数据库后,我将尝试创建星形模式/雪花模式 我会为每个事件设置一个事实表,例如犯罪事实表、情报事实表等,还是为每个事件设置一个维度?每个事件都有不同的信息。例如,犯罪中有罪犯和受害者,碰撞中有人 我在网上和书中找到的所有例子似乎都有一个事实表,除了这个 关于事实表数量的决定取决于以

我在一家警察局工作,该局正在考虑开发一个数据仓库来管理信息。它在大约十个数据库中保存信息:

  • 犯罪数据库
  • 情报数据库
  • 冲突数据库
  • 家庭暴力数据库
  • 这些事件,例如犯罪、情报等,彼此无关。我计划为每一个创建副本数据库。创建复制数据库后,我将尝试创建星形模式/雪花模式

    我会为每个事件设置一个事实表,例如犯罪事实表、情报事实表等,还是为每个事件设置一个维度?每个事件都有不同的信息。例如,犯罪中有罪犯和受害者,碰撞中有人


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

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

    • 实体是否具有一致的“一致”维度
    • 不同实体的事实是否相似
    • 查询通常是实体特定的还是跨实体的
    我可能会设想一个系统,其中有一个摘要报告系统,其中包含一个事实表和维度,例如:

    • 时间
    • 事件类型
    • 事件地点
    以及以下事实:

    • 受害者人数
    • 犯罪者人数
    • 是时候回应了
    (或其他)


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

    谢谢。更多:“detailled数据库”是副本数据库还是另一个为搜索而优化的数据库?@w0051977。我不知道源数据是什么样子,也不知道数据仓库的设计要求是什么。根据我的经验,来自操作系统的数据通常需要对数据仓库进行某种程度的清理/重新格式化。@GordonLinoff您能否支持您的陈述“事实上,我建议使用实体-关系结构来存储详细数据”以及事实或考虑因素?@Skoffer。这种说法是基于这样一种观察,即不同类型的事件的维度可能会大不相同。如果维度之间几乎没有重叠,那么实体关系结构似乎更合适。