Mi sono cacciato in un casino sulla gestione delle disponibilità...

Devo dare la possibilità a degli utenti di segnare in che giorni sono disponibili, con la frequenza e dare ad un admin la possibilità di visualizzare chi è disponibile in una certa data.

Ho un database con la tabella disponibilià (per ora) così strutturata:
- id
- id utente
- tipo [occasionale, settimanale, mensile]
- data
- giorno [lun, mar, mer...]
- numero_giorno [1,2,3,4,5]

L'interfaccia utente è così pensata:
- scelta tipo di frequenza

se occasionale
- immissione data

se settimanale
- scelta giorno (lun, mar, mer...)

se mensile
- scelta giorno (lun, mar, mer...)
- scelta numero giorno (1°, 2°, 3°)
[ in pratica si può dare la disponibilità per il 1° mercoledì di ogni mese]

Il problema sta tutto nella parte dell'admin... non capisco come posso ricavare chi è diponibile in una certa data....