I need to set up a database to track learning modules. I have one admin person who will enter completed dates for each user for each module. She currently does this with an excel spreadsheet where the users are on the left with one per row, and learning module ids across the top as column headers. The dates fill the cells.

My problem: She needs to add modules each month and some modules become inactive and she hides those for better viewing. How do i create such a dynamic table?

I thought about creating a user table (id, user_id, user_name, etc) and a second module table (id, module_id, module_name, active) where she could add modules and then a third table (id, user_id, module_id, date_completed) to track the module, user, and date completed.

How would I take information from these 3 tables and query it to display it like the grid she uses in excel?