Oppure si può spostare la complessità dal DB al PHP memorizzando nella tabella del medico un campo di un byte.
Quindi codificherai il byte mappando al bit di peso inferiore il lunedì e procedendo fino al bit di peso 6 la domenica. il bit 8 (di peso 7) resta inutilizzato
a questo punto avrai
codice:
Peso Bit | Decimale | Valore Mappato
0 | 1 | Lunedì
1 | 2 | Martedì
2 | 4 | Mercoledì
3 | 8 | Giovedì
4 | 16 | Venerdì
5 | 32 | Sabato
6 | 64 | Domenica
7 | 128 | ** NON UTILIZZATO **
Le princiapli attività svolte in PHP potrebbero essere:
Codice PHP:
//Supponiamo che $gg contenga il valore byte proveniente dal DB o da
//memorizzare nel DB
//Verifica se un dato giorno è settato, con $num_giorno contenente il peso bit corrispondente
//al valore mappato
if($gg & pow(2,$num_giorno))...
//Settare un giorno $gg per successivvo aggiornamento DB senza toccare gli altri valori
$gg &= pow(2,$num_giorno)
//Settare più valori in colpo
$gg= pow(2,1) & pow(2,3) & pow(2,4);
Al posto della funzione pow puoi utilizzare direttamente i valori decimali della tabella di mapping, ed utilizzre gli array di PHP per costruirti la tabella di mapping in modo da ottenere il valore decimale e quello logico (nome del giorno) in base all'indice dell'array (peso in bit)
Buon divertimento!