2007 – Vendita di libri on line

Un negozio on line chiede che sia progettato e realizzato un database per l’organizzazione e la gestione di un portale per la vendita di libri su Internet.

Il negozio richiede che:

  • il Catalogo dei libri sia organizzato per:
    • Reparti (in ordine alfabetico: architettura e urbanistica, arte, classici greci e latini, cucina e casa, diritto, economia e management, fantascienza e fantasy, filosofia, fumetti, …)
  • ciascun Reparto sia organizzato in libri:
    • “Da non perdere” caratterizzati da uno sconto del 20% sul prezzo di copertina
    • “I più venduti” caratterizzati dal maggior numero di copie vendute negli ultimi 30 giorni
    • “Ultimi arrivi” caratterizzati dai titoli aggiunti negli ultimi 30 giorni
    • “Offerte speciali” caratterizzate da uno sconto del 25% sul prezzo di copertina
    • “Remainders” caratterizzati da uno sconto del 50% sul prezzo di copertina
  • ciascun libro in negozio sia archiviato con le seguenti ulteriori informazioni:
    • titolo, autore, prezzo di copertina, sconto (eventuale), dati (numero di pagine, rilegato, …), anno di pubblicazione, editore, collana, immagine (foto della copertina), data di archiviazione
  • gli utenti abilitati all’acquisto on line siano registrati con i seguenti dati:
    • nome e cognome, indirizzo, codice di avviamento postale, città, nazione, telefono, fax, e-mail, password, numero di carta di credito, tipo di carta di credito (Visa, CartaSi, Mastercard, …), data di scadenza della carta di credito
  • gli utenti possano chiedere, in fase di acquisto, che il negozio emetta fattura
  • il Carrello Acquisti sia organizzato come segue:
    • numero di copie acquistate, titolo, autore, prezzo, disponibilità (giorni, settimane, …), togli dal carrello (casella di spunta)
  • il riepilogo degli ordini sia organizzato come segue:
    • data dell’ordine, numero d’ordine
    • dettagli dell’ordine (riferimento articolo, quantità, titolo, prezzo di copertina, prezzo
    • scontato, stato dell’ordine, evasione prevista dalla data dell’ordine).

Il candidato, dopo aver fatto le eventuali ipotesi aggiuntive:

  1. Fornisca:
    1. lo schema concettuale e lo schema logico del database
    2. la definizione delle relazioni in linguaggio SQL.
  2. Implementi le seguenti query:
    1. Ricerca per Reparto: scelto un Reparto, il numero di libri “Da non perdere” ed il numero di libri “I più venduti” con i relativi dettagli
    2. Ordini: gli ordini in corso, con dettagli, di un dato utente.
  3. Scriva in un linguaggio lato server, il codice di almeno una delle seguenti pagine del portale:
    1. con accesso libero, la pagina utile a visualizzare i Reparti e, per ciascun reparto, la pagina che implementa la query n. 1;
    2. con accesso riservato agli utenti registrati, la composizione degli ordini in corso.