Salve a tutti.
Devo progettare un database per un centro benessere e vorrei dei suggerimenti per non sbagliare metodologia.
Le funzionalità del frontend saranno più o meno queste:
- Iscrizione al sito (diversificati per tipo utente: privato, associato, collaboratore)
- Prenotazione prestazione
- Area privata utente con (dati utente e storico prenotazioni)
Le funzionalità lato backend (administrator) invece:
- Lista utenti registrati
- Lista prestazioni (divisa per categorie e date) con inserimento/modifica/cancellazione
- Prenotazioni utenti (divise per tipo utente)
- Storico Prenotazioni
Ho pensato di strutturare il db in questo modo:
Tabella Users:
ID
Nome
Cognome
Password
Tipo
Tabella Prenotazioni:
ID
Prestazione
Data
ID_Utente
Nome_Utente
Tipo_Utente
Tabella Prestazioni:
ID
Tipo_Prestazione
Luogo
Tabella Date_Prestazioni:
ID
Data
N_posti
ID_Prestazioni
Esempio di inserimento lato backend di una Prestazione:
Inserisco nella tabella Prestazioni
ID: 1
Tipo prestazione: "Maschera viso"
Luogo: "Centro Bellezza 1"
_______________
ID: 2
Tipo prestazione: "Maschera corpo"
Luogo: "Centro Bellezza 1"
Poi inserisco 3 record nella tabella Date_Prestazioni (correlata)
ID: 1
Data: 22/8/2008
N_posti: 6
ID_Prestazioni: 1
_______________
ID: 2
Data: 28/8/2008
N_posti: 3
ID_Prestazioni: 1
_______________
ID: 3
Data: 12/9/2008
N_posti: 8
ID_Prestazioni: 2
Esempio lato Frontend (utente):
Autentificazione > Pagina Prenotazioni
Scelta Tipo Prestazioni Disponibili (in questo caso): "Maschera viso", "Maschera corpo"
Scelta Data Disponibile (correlata al tipo prestazione).
Invio dati al database (Tabella Prenotazioni) + email all'utente ed all'admin del sito.
Fin qui credo di non aver sbagliato nulla, mi sorgono però un paio di dubbi:
Siccome gli utenti saranno divisi per tipo all'atto della registrazione e ogni tipo avrà delle limitazioni sulla visione e prenotazione di alcune categorie di prestazioni, mi conviene aggiungere un ulteriore campo nel database per differenziare questa cosa oppure lascio cosi e mi gestisco tutto con delle normali condizioni?
Inoltre dovendo creare uno storico delle prenotazioni, mi conviene creare un ulteriore tabella es."Archivio" per buttarci dentro tutte le prenotazioni vecchie oppure posso creare un Archivio "on the fly" semplicemente utilizzando la tabella "Prenotazioni"?
Resto in attesa di suggerimenti/modifiche/stravolgimenti.
Grazie

Rispondi quotando