I am designing a data model for reporting against People who take courses. Im trying to figure out if i should use one or two fact tables.
Measures I will need to calculate are:
-Total number of students
-Number of nationalities (and filter by nationality)
-Number of students who passed a course
Note that just because a student is on a course, does not mean they have sat exams so they may not yet have a course result.
This gives me two sets of fact data at different granularities.
granularity of all students on a course.
granularity of students that have completed a course and passed and failed.
My options as i see them are:
Two seperate fact tables at the different granularities that share a few dimensions.
One fact table, but for any students that that have not passed/failed, they will be linked to an entry in the DimResult that has a description of "No Result Yet".
Is there a set of guidelines for use when mixing granularities or is it a case that both answers will work and its up to me to decide?
Schema showing plan with both fact tables is shown below.
Thanks for any advise