【问题标题】:Data modeling : Employees and their skills数据建模:员工及其技能
【发布时间】:2021-04-14 10:47:52
【问题描述】:

我正在构建一个关于人力资源数据的数据仓库模型,但无法自行决定包含员工技能演变的事实表:

我有一个 Employee 表和一个 Skill 表。每个员工都可以在不同级别(100、200、300)拥有多种技能(我希望他们有!)。

我需要保留每个组合 Employee/Skill/SkillLevel 的历史记录,以便他们可以分析自己随着时间的推移的演变。

1- 我在考虑一个事务性事实表,但每个员工每年只有几行,例如 James 在 1 月 8 日获得了 100 级的新技能,然后一行假设 3 个月后,技能水平为 200,依此类推...图形分析会显示许多空白空间(当没有任何新技能/技能水平时),或者我需要进行复杂的查询才能获得一些有趣的事情,比如如果我想知道某个员工在某个时间点的所有技能是什么?这个事实表在我看来使用起来很不自然......

2- 所以我正在考虑一个快照事实表,它可以帮助我轻松回答上一个问题。知道我需要每天存储每个员工技能的快照,以确保我不会丢失任何数据更改。它不是在一年中仅进行一些更改就构成了一张巨大的桌子吗?是否值得做一个快照以使分析更容易,而我会在较小的事务事实表中拥有相同的信息?

最好的方法是什么?

非常感谢您的建议!

照顾好自己

【问题讨论】:

    标签: database database-design model relational-database modeling


    【解决方案1】:

    最佳实践方法通常是在最低粒度级别创建事实表。您不必将其公开给最终用户(当然,除非您愿意),但您可以在此基础上构建任何其他事实表。

    在您的情况下,如果您创建一个事务性事实表(包含每次​​某人获得技能的记录),您可以轻松查询它以获取所有技能的当前位置,并且您可以在需要时创建快照。

    我不会创建每日快照 - 但例如,拥有月末快照可能会有所帮助。鉴于技能不太可能每天都在变化,对于任何人来说,创建每日快照都会产生大量重复数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 2011-07-12
      • 2019-10-07
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      相关资源
      最近更新 更多