|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2004
Messaggi: 806
|
Database per sistema di prenotazioni
Sto realizzando un sito per gestire le prenotazioni di uno chalet. Voglio fare in modo che inserendo una data o un periodo (es. 07/08/2006 oppure dal 01/06/2006 al 12/06/2006) si possa avere una situazione visiva dello stato degli ombrelloni, verde libero, rosso occupato. Volevo dei consigli su come realizzare il database. Per il momento mi è venuta in mente questa soluzione:
Fare una tabella con tutti gli ombrelloni e dei campi per i giorni del tipo si/no es. Codice:
ombrellone - 01/06 - 02/06 ecc ecc ... 120 - si - no 121 - si - si 122 - no - no ... Pero' mi pare lungo e poi se uno chalet ha piu ombrelloni ci si mette parecchio a modificare il database. Mi potreste aiutare?
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb ---> Ho trattato con un sacco di gente, usate il search ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2004
Messaggi: 806
|
up
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb ---> Ho trattato con un sacco di gente, usate il search ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
parti dalla domanda fondamentale: cos'e' UNA prenotazione?
immagino conterra' info sul cliente, il periodo e l'obrellone. il periodo e' una successione di giorni consecutivi o puo' essere frammentato? dopo di che fai almeno 3 tabelle: elenco clienti, eventuale elenco ombrelloni, se i vari ombrelloni hanno info associate elenco prenotazioni un consiglio: non partire mai dalla struttura fisica del db, parti sempre dalla semantica degli oggetti che tratti e dalle relazioni logiche che intercorrono tra oggetti diversi. poi piano piano costruisci il db fisico |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2004
Messaggi: 806
|
ti ringrazio intanto per la risposta:
prenotazione deve avere queste caratteristiche: -un username(associato poi con una tabella clienti che contiene i dati) -prenota un ombrellone -per un periodo consecutivo di giorni(che puo anche essere un giorno solo) -puo avere 0 o piu lettini -puo avere 0 o piu sdraio -puo avere o non avere la cabina(fino a un massimo di cabine utilizzabili) Non so se fare una tabella ombrelloni visto che non hanno particolari caratteristiche, sarebbe utile solo sapere quanti ce ne sono nello chalet e come sono disposti (quante file e quante colonne) in modo da disegnare una mappina. Io finora ho fatto una tabella ombrelloni con tutti gli ombrelloni e il campo "prenotato" del tipo "si/no" mi interessava sapere se esiste una soluzione migliore. grazie ancora.
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb ---> Ho trattato con un sacco di gente, usate il search ![]() |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Oct 2005
Città: Palermo
Messaggi: 2579
|
Quote:
C'è un relazione tra lo chalet e gli ombrelloni ? Quale ? e tra gli ombrelloni e le cabine ? Devi avere chiaro questo per creare una struttura db coerente. Al limite se sai che uno chalet ha 10 ombrelloni disponibili è un calcolo che puoi far fare al programma mentre il cliente visualizzerà solo la disponibilità relativa al periodo selezionato, d'altronde non credo che un cliente abbia una preferenza relativa all'ombrellone 3 piuttosto che al 5.
__________________
Utente gran figlio di Jobs ed in via di ubuntizzazione Lippi, perchè non hai convocato loro ? |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jan 2004
Messaggi: 806
|
tra chalet e ombrelloni nessuna relazione.
unica cosa uno chalet ha x ombrelloni e y cabine disposti su m righe e n colonne. Cmq all'utente interessa anche che ombrellone è visto che la prima fila (vicino al mare per interderci) può ad esempio costare di più
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb ---> Ho trattato con un sacco di gente, usate il search ![]() |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Oct 2005
Città: Palermo
Messaggi: 2579
|
Quote:
Lascia perdere le matrici, piuttosto resta da capire se tu devi assegnare cmq tutte le cabine, per cui almeno una deve essere associata ad un ombrellone oppure non c'è quest'obbligo e quindi ti possono restare cabine non affittate o magari affittarle separatamente rispetto agli ombrelli.
__________________
Utente gran figlio di Jobs ed in via di ubuntizzazione Lippi, perchè non hai convocato loro ? |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jan 2004
Messaggi: 806
|
si una prenotazione ha obbligatoriamente un ombrellone (e solo uno).
poi uno ha la facoltà di prenotare anche una cabina, sempre che questa sia ancora disponibile (ovviamente non ci sono tante cabine quanti ombrelloni, ce ne saranno una 25/30ina e oltre 100 ombrelloni). Cmq possono rimanere anche cabine non affittate e non si possono affittare solo cabine. Uno puo affittare 1 ombrellone solamente o 1 ombrellone e 1 cabina, ma non solo cabina.
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb ---> Ho trattato con un sacco di gente, usate il search ![]() |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Oct 2005
Città: Palermo
Messaggi: 2579
|
Quote:
__________________
Utente gran figlio di Jobs ed in via di ubuntizzazione Lippi, perchè non hai convocato loro ? |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
tu devi gestire:
clienti, prenotazioni un cliente avrà una serie di dati, una user_id e una pwd. una prenotazione comprende: cliente, ombrellone, cabina letti e sdraio (facoltativi). io direi di fare una tabella prenotazioni con le seguenti chiavi esterne: - ombrellone (identificato dal numero e avente come dati anche il numero di riga e colonna qualora necessario), - cliente che ha fatto la prenotazione - cabina (come per l'ombrellone) avendo chiavi esterne puoi mettere i soli ombrelloni e cabine occupati in 2 tabelle separate in modo da sapere se un ombrellone è occupato (sarà nella tabella) o è libero (il suo numero non sarà nella tabella) per letti e sdraio puoi mettere un semplice contatore nel record della prenotazione, facendo però attenzione ad aggiornare un contatore master che tiene traccia del materiale ancora disponibile |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Jan 2004
Messaggi: 806
|
Quote:
![]() unico problema devo fare sempre come ho scritto nel primo post per sapere se in un dato giorno è prenotato o meno? ps. per letti e sdraio si presuppone che ce ne siano infiniti quindi non ho bisogna di sapere se c'è materiale disponibile, di solito uno chalet ne ha in abbondanza.
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb ---> Ho trattato con un sacco di gente, usate il search ![]() |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
nessuna intuizione, è solo una tecnica comune nella costruzione di db
![]() per trovare se un dato ombrellone è occupato in un dato periodo penso basti un semplice join tra la tabella delle prenotazioni e quella degli ombrelloni occupati: in questo modo hai in un solo record temporaneo tutti i dati relativi alla prenotazione e all'omrellone. dopo di che ti basta guardare se nel periodo da te scelto il dato ombrellone è già occupato. |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Jan 2004
Messaggi: 806
|
eheh si vede che è il primo che faccio per un sito
![]() cmq grazie per l'aiuto ora ci provo e vi faccio sapere ^^
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb ---> Ho trattato con un sacco di gente, usate il search ![]() |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
eventualmente se avessi bisogno di prestazioni ottimizzate in fase di verifica delle disponibilità di vari ombrelloni in un dato periodo, si potrebbe optare per l'inserimento di una tabella ridondante che tenga traccia di tutte le associazioni ombrellone - periodo di occupazione. in tal modo avresti molta piu facilità a mostrare per ogni periodo la disponibilità meno di tutti i posti. al prezzo, però, di una maggiore attenzione in fase di aggiornamento dei dati del db perchè devi gestire la ridondanza!
|
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
Quote:
e poi io so solo cose a livello didattico: ho realizzato un solo db serio fin'ora ![]() |
|
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Jan 2004
Messaggi: 806
|
Quote:
![]()
__________________
iMac 27" Late 2013, iPhone 7 128GB Black, iPad con Display Retina 16GB WiFi (4th Generation), Tim Smart Fibra 100Mb/20Mb ---> Ho trattato con un sacco di gente, usate il search ![]() |
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Oct 2006
Messaggi: 1105
|
ripensandoci, forse l'idea della ridondanza non serve...
se tu hai il periodo da x a y per sapere tutti gli ombrelloni occupati basta cercare tutte le prenotazioni fatte per periodi compatibili con il tuo e per ognuna leggere l'ombrellone prenotato. non serve neanche leggere la tabella degli ombrelloni: basta leggere la chiave esterna che c'è nel record della prenotazione (posto che sia il numero dell'ombrellone, come è ragionevole) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:20.