I’m designing a database for an employee scheduling system. Each shift has M different roles that must be filled and each of N employees is qualified for an combination of those M different roles.
The naive design is to put M boolean flags into each employee record. Does this require me to constrain the number of roles that can be supported at design time or do modern databases have a way to avoid the potentially unbounded MxN table?
How about something like: