[events] と [event_segment] と [event_staff] を記述したファクト テーブルがあります。
[イベント] は、多くの [event_segment] で構成されます。たとえば、「紹介」、「事前チェック」、「第 1 段階」、「第 2 段階」などです。[イベント] のキー (つまり、粒状の一意の ID) は [event_ref] です。ただし、[event_segment] のキー (一意の識別子) は [event_ref] と [segment_order] の複合です。
[event_staff] は 1 つのイベントに対して多くのスタッフが参加するため、一意の ID は [event_ref] と [staff_id] の合成です。
日、場所など、いくつかの適合した次元があります。
特にレポートで、3 つのテーブル間で集計された事実を簡単に比較できるようにしたいので、このデータのモデルを決定するのに苦労しています。すなわち count([staff]) vs sum([event_segment_duration]) where [staff_type] = 'basic' and [event_segment_type] != 'clean up'
イベントには多くのスタッフが参加しているため、イベントには多くのセグメントがありますが、[event_ref] でグループ化しなければならないセグメントにスタッフを結び付けることができません。
これは「機能」しますが、イベントに参加する (適切にグループ化する) ため、Kimball/データ ウェアハウスの標準に違反していると見なされますか?
また、[event_ref] は [event_segment] テーブルに存在する必要があります。これは代理キーである必要があるため、グループ化できませんか?