booking online

valerione

Nuovo Utente
25 Ott 2009
5
0
0
Ciao a tutti,
sto impostando l'organizzazione delle tabelle per gestire un booking online.

Il mio problema è nell'organizzazione dell'ultima parte, cioè nel conservare le prenotazioni.

Inizialmente pensavo di organizzare la tabella prenotazioni così:

PRENOTAZIONI
id,
periodoDal,
periodoAl,
id_camera [indica la camera oggetto della prenotazione],
importo pagato

CAMERE
tipo_camera,
numero_letti,
prezzo

Se uso la referenza alla camera attraverso l'ID (come chiave esterna) nella tabella prenotazioni, se l'utente cambia una caratteristica della camera (per una correzione ad esempio) anche le prenotazioni precedenti al momento della modifica risulteranno associate a questa camera con le nuove caratteristiche.

Per risolvere tale situazione mi viene solo in mente di replicare la tabella camere con una seconda tabella chiamata ad esempio "camere_prenotate" in cui salvare lo stato della camera nel momento in cui è stata prenotata.

Secondo voi c'è un altro modo di organizzare le cose?

Ciao grazie!! :)
 
non è un problema di come è organizzato il database, ma di come è fatta la query
 
Ciao, scusami non riesco a capire a cosa fai riferimento! :(

recupero la camera a cui è associata la prenotazione attraverso l'ID...
 
come recuperi l'ID è una cosa, come aggiorni il campo è un'altra...
Però forse non ho capito io, difficile capire senza nessuna query postata.

Se tu scrivi:

Se uso la referenza alla camera attraverso l'ID (come chiave esterna) nella tabella prenotazioni, se l'utente cambia una caratteristica della camera (per una correzione ad esempio) anche le prenotazioni precedenti al momento della modifica risulteranno associate a questa camera con le nuove caratteristiche.

... io capisco che il problema è dopo la modifica, quindi il problema è come fai l'aggiornamento della prenotazione nel database
 
TABELLA PRENOTAZIONI
id,
periodoDal,
periodoAl,
id_camera [indica la camera oggetto della prenotazione],
importo pagato

TABELLA CAMERE
id,
tipo_camera,
numero_letti,
prezzo

Partendo da questa struttura il mio problema è nel momento in cui devo effettuare i report per l'utente. Ad esempio: quante camere singole sono state prenotate nell'ultimo anno? Quante le doppie?

quindi per reperire le prenotazioni fatte nell'ultimo anno e recuperare il tipo di camere oggetto delle prenotazioni faccio la seguente query (semplifico giusto per capirci):

SELECT c.*, p.*
FROM camere c, prenotazioni p
WHERE c.id = p.id_camera

Se l'utente accede alla scheda di una camera e, per esempio, ne cambia la configurazione, accade che quando eseguo la query sopra mi trovo vecchie prenotazioni associate alla nuova configurazione della camera, falsando i report.
 
credo che la via migliore sia copiare le informazioni della camera nella stessa tabella prenotazioni
in questo modo i report li fai direttamente dalla tabella prenotazioni con le caratteristiche delle camere
fissate al momento della prenotazione

d'altra parte fare un'ulteriore tabella significa comunque legarla alle prenotazioni, tanto vale avere tutte le informazioni insieme
ciao
Marino
 
Si, ci ho pensato un po su, ho visto che cmq facendo bene la scelta dei campi sulla tabella "prenotazioni" ho u buon margine di movimento almeno per iniziare.

Il problema che sto affrontando adesso riguarda la gestione dei "supplementi". I supplementi sono quelle opzioni che la struttura può offrire ai clienti, e per la fornitura dei quali può essere applicato un sovrapprezzo.
Es. parcheggio, internet etc..

ho pensato di fare una tabellina come anagrafica dei possibili servizi aggiuntivi che una struttura potrebbe avere necessità di proporre.

Tabella TIPO_SUPPLEMENTI
id
nome


dopodichè una tabella dove le strutture creano il loro listino dei servizi aggiuntivi con il relativo prezzo

Tabella SUPPLEMENTI_HOTEL
id,
type (FK verso TIPO_SUPPLEMENTI)
prezzo,
hotel (FK verso la tabella hotel)

Due tabelle separate poichè il sito è multi-struttura, quindi io fornisco le opzioni possibili, e ognuno di loro nell'applicativo sceglie quelle che offre indicando il prezzo.

Nella tabella SUPPLEMENTI_HOTEL ogni struttura può caricare al massimo un record per ogni tipo di supplemento.

Mi sto impantanando o è una buona organizzazione?:confused::confused:
 

Discussioni simili