Alcune considerazioni
- In un quartiere possono essere presenti uno o più appartamenti
- Un proprietario può possedere uno o più appartamenti
- Un appartamento risiede in un quartiere e può essere prenotato una o più volte (in periodi indipendenti)
- Un cliente può effettuare una o più prenotazioni (di un qualsiasi appartamento, in un qualsiasi periodo, …)
- La prenotazione di un appartamento
- è accettata se non esistono prenotazioni che cadono nello stesso periodo
- e successivamente confermata se entro 3 giorni il cliente versa il 40% del costo totale
- Anche i pagamenti dei clienti e i versamenti ai proprietari potrebbero essere registrati nel DB…
SCHEMA E/R
SCHEMA RELAZIONALE
- PROPRIETARIO(IDproprietario, …, IBAN)
- QUARTIERE(IDquartiere, nome, …)
- APPARTAMENTO(IDappartamento, …, postiletto, costogiornaliero, quartiereID, proprietarioID)
- PRENOTAZIONE(appartamentoID, clienteID, …, data1, data2, confermato)
- CLIENTE(IDcliente, …, nomeutente, password)
QUERY
- Le caratteristiche generali di un appartamento, dato il suo codice
I dati proiettati dipendono da chi esegue l’interrogazione…
123SELECT APPARTAMENTO.*, QUARTIERE.nomeFROM APPARTAMENTO INNER JOIN QUARTIERE ON APPARTAMENTO.quartiereID = QUARTIERE.IDquartiereWHERE APPARTAMENTO.IDappartamento = [Codice appartamento?] - L’elenco degli appartamenti che si trovano in un determinato quartiere
…
- L’elenco degli appartamenti che offrano un numero di posti letto non inferiore ad un valore indicato
…
- Il numero totale di appartamenti offerti dall’agenzia, indipendentemente dalle loro caratteristiche
…
- Il costo totale di affitto per ogni prenotazione, in relazione al numero di giorni richiesti
…