Progettazione del livello di persistenza della camera d'albergo

4

Ho cercato di dargli una possibilità senza pensarci troppo e questo è quello che mi è venuto in mente:

Room
----

| ID | No.  | Type    | Price   | Beds | Hotel| Size  | Minibar | Images | Booked |
| ---|------|---------|---------|----- | ---  | ----  | -----   | -----  | -----  |
| 1  | 101  | Deluxe  | 5000.00 | 2    | A    | 31m^2 | yes     |
| 2  | 102  | Economy | 4000.00 | 1    | A    | 25m^2 | no      
| 1  | 103  | Deluxe  | 5000.00 | 1    | A    | 31m^2 | yes     
| 2  | 104  | Suite   | 9000.00 | 2    | A    | 50m^2 | yes     

Room continued

| ID | TV            | Bathroom 
| ---| --------      | ------   
| 1  | 32inch(hdtv)  | Private  
| 2  | 30inch(flat)  |
| 1  |               |
| 2  | 70inch(LED)   |

Vedo che ci sono molti servizi che appartengono a una stanza e ho cercato di creare una colonna per ognuno, ma ha iniziato a sembrare pelosa. Inoltre, la colonna Hotel sarà un campo many2one e anche Images .

So che le informazioni sulla prenotazione non dovrebbero appartenere a Room , invece dovrebbe andare a Booking table. Sto pensando dove dovrebbe andare l'ora della prenotazione e il check-out? in Booking tabella?

Oltre a queste informazioni, quali altre informazioni devo mantenere?

Aggiorna

Durante la progettazione dello strato di persistenza ho osservato che il problema è lo stesso della programmazione. Devo mantenere un buon equilibrio tra le tabelle in modo tale da mantenere un basso accoppiamento e un'elevata coesione.

Usa caso

C'è un merchant che può avere molti hotels probabilmente a molti locations . Dato un utente, può verificare la disponibilità di rooms in un determinato hotel e dovrebbe essere in grado di prenotare un room per un determinato periodo di tempo.

    
posta CodeYogi 23.06.2017 - 13:25
fonte

1 risposta

8

Il tuo design non è normalizzato, il che significa che avrai molti di problemi con esso. Non spiegherò qui perché i moduli normali sono importanti nei database razionali.

I prezzi e le prenotazioni sono sottosistemi di per sé con la loro complessità. Ti darò una soluzione ingenua per brevità. Questa risposta ti offre alcune cose da considerare per il sottosistema dei prezzi.

Inoltre, non è necessario includere l'unità all'interno dell'origine per la colonna "SIZE", cioè inserire il numero 31 e non la stringa "31m ^ 2". L'unità può essere una convenzione, può essere indicata sul nome della colonna o può puntare a una tabella UNITS.

Un PNG vale 1024 parole:

Questo è un diagramma ER concettuale, il che significa che non ha tutti i dettagli. Si presume che ogni tabella abbia il proprio ID e che le tabelle di join abbiano gli ID dei loro genitori.

Questoèunaltrodiagrammachehorealizzatoperuncorsoconlaprenotazionediservizi,camereelaregistrazionedellapermanenzaeffettivadeiclienti:

Eriguardoalfattochelamodellazionedeldatabasefacciaparteomenodellamodellizzazionedelsoftware, questa risposta fornisce alcune informazioni.

    
risposta data 23.06.2017 - 15:14
fonte