Progettazione database

di il
9 risposte

Progettazione database

Ciao a tutti!
Mi sono appena iscritto perchè cerco un aiuto per la progettazione di un database che mi servirà per sviluppare un web app in PHP.

Io ho già creato lo schema logico e vi sarei molto grato se qualcuno potesse dargli un'occhiata.

Inoltre, non riesco a distinguere la fase di progettazione concettuale da quella logica...

Qualcuno mi faccia sapere in modo da condividere la traccia.

Grazie

9 Risposte

  • Re: Progettazione database

    Benvenuto nel forum.
    Fornisci tutti gli indizi che finora hai messo in campo tu. Il forum li analizza e può partire la discussione.
  • Re: Progettazione database

    Grazie per il benvenuto e per la risposta.
    Allora devo postare la traccia dell'esercizio giusto?
  • Re: Progettazione database

    Una società di noleggio video vuole automatizzare i punti vendita.
    La società gestisce 15 punti vendita in varie località; La società ha dei fornitori che forniscono i video.Ogni video è contraddistinto da attori, un titolo, un regista, la durata ed un genere.I clienti dovranno essere rintracciabili e deve essere tenuta traccia del cliente e dei video che ha in noleggio. Per ogni cliente si dovrà avere: nome, cognome, indirizzo, telefono cellulare, indirizzo e-mail e data di nascita. Per ogni cliente si dovrà mantenere uno storico dei noleggi effettuati.
  • Re: Progettazione database

    Hai fornito la traccia del problema, ma non quello che avresti messo in piedi tu. Leggi attentamente il regolamento del forum. Non è consentito fornire "pappa pronta", né risolvere esercizi (direi) da zero.
  • Re: Progettazione database

    Ok!
    Rimedio subito
  • Re: Progettazione database

    Questa è solo una prima parte dello schema, che ho allegato al messaggio.
    Mi scuso se disegnato a mano, spero che sia comprensibile.
  • Re: Progettazione database

    Si tratta di un esercizio o devi implementare un database vero? Per me c'è qualcosa di poco reale, ad esempio:
    Videocassette: non esistono più, oggi forse circolano ancora DVD. Direi di chiamarli più in generale Video o meglio Films.
    Dipendenti: un ADDETTO può lavorare in un solo PUNTO VENDITA. Con la flessibilità lavoro di oggigiorno mi sembra un vincolo alquanto obsoleto e fuori dal tempo.

    Provo ugualmente a fare la mia analisi. Il tuo schema forse ha una logica, io purtroppo so usare solo Access che ha un look organizzazione tabelle differente, di conseguenza non capisco molti tuoi simboli.
    Provo a spezzettare tutto il discorso in più piccoli frammenti.

    1) FILMS: Un Film ha molti Artisti che gli girano intorno. Preferisco parlare più in generale di Artisti piuttosto che Attori, in quanto ci sono Attori che sono anche Registi, Sceneggiatori ecc... Un Film molti Artisti. Ma anche un Artista molti Films. Occorre una tabella di congiunzione che chiamerei Credits con i seguenti campi:
    IDCredit (PK)
    IDArtista
    RuoloCredit (qui ci scrivi se si tratta di Attore, Regia, Sceneggiatura...io includerei anche la Produzioni e considerare i Produttori anche loro nella tabella Artisti)
    IDFilm

    2) FORNITORI, PUNTI VENDITA, CLIENTI: Queste 3 entità hanno le stesse caratteristichè, quindi io generalizzerei una tabella Nominativi con i seguenti campi
    IDNominativo (PK)
    Nominativo
    TipoNominativo (qui distingui se si tratta di Fornitore, PuntoVendita, Cliente)
    Indirizzo
    IDCittà

    3) I Films partono da Fornitori, entrano in PuntoVendita, vengono noleggiati da Clienti, i Clienti restituiscono i Films, i Films ritornano dai Fornitori. Tutti questi passaggi io li chiamerei Movimenti, quindi una tabella Movimenti con i seguenti campi:
    IDMovimento (PK)
    DataMovimento
    TipoMovimento (qui specifichi se si tratta di EntradaDaFornitore, NoleggioCliente, RestituzioneCliente, UscitaVersoFornitore)
    IDNominativo
    IDDipendente
    IDPuntoVendita

    Dopo tutta questa analisi, propongo la seguente struttura tabelle:

    Città
    IDCittà (PK)
    Città
    CAP
    Provincia
    Regione

    Nominativi
    IDNominativo (PK)
    Nominativo
    TipoNominativo
    Indirizzo
    IDCittà (FK)

    Dipendenti
    IDDipendente (PK)
    Dipendente

    Movimenti
    IDMovimento (PK)
    DataMovimento
    TipoMovimento
    IDNominativo (FK)
    IDDipendente (FK)
    IDPuntoVendita (FK)

    DettagliMovimenti
    IDDM (PK)
    IDFilm (FK)
    IDMovimento (FK)
    Prezzo

    Films
    IDFilm (PK)
    Titolo
    Trama
    Durata

    Artisti
    IDArtista (PK)
    Artista

    Credits
    IDCredit (PK)
    IDArtista (FK)
    RuoloCredit
    IDFilm (FK)

    Relazioni:
    Città.IDCittà uno-a-molti Nominativi.IDCittà
    Nominativi.IDNominativo uno-a-molti Movimenti.IDNominativo
    Dipendenti.IDDipendente uno-a-molti Movimenti.IDDipendente
    Nominativi.IDNominativo uno-a-molti Movimenti.IDPuntoVendita
    Movimenti.IDMovimento uno-a-molti DettagliMovimenti.IDMovimento
    Films.IDFilm uno-a-molti DettagliMovimenti.IDFilm
    Film.IDFilm uno-a-molti Credits.IDFilm
    Artisti.IDArtista uno-a-molti Credits.IDArtista
  • Re: Progettazione database

    OsvaldoLaviosa, ti ringrazio tanto per la tua analisi e il tuo aiuto.
    Questo è un progetto universitario, di conseguenza deve seguire strettamente le regole della progettazione dei database, in ad esempio è fuori discussione mettere 3 entità distinte in una sola tabella.
    L'esercizio forse non è stato aggiornato ai tempi d'oggi, ma tra DVD e VIDEOCASSETTA in termini di esercizio cambia poco.
    Per la flessibilità lavorativa, sono scelte che possono essere fatte dal progettista visto che non ci sono vincoli nel testo, anche se la tua osservazione è più che corretta.
  • Re: Progettazione database

    armando88 ha scritto:


    ad esempio è fuori discussione mettere 3 entità distinte in una sola tabella
    Allora prevedi 3 tabelle Fornitori, PuntiVendita, Clienti con gli stessi campi. Poi (immagino) hai già capito come devi relazionare di conseguenza.
    ALT. Mi correggo. La tabella Movimenti con il campo IDNominativo non fa distizione tra IDFornitore o IDCliente. Il tutto sarà consequenziale a ciò che viene scritto in TipoMovimento. Se la tabella Movimenti ti piace così come l'ho proposta, Nominativi deve per forza di cosa unificare Fornitori e Clienti.
Devi accedere o registrarti per scrivere nel forum
9 risposte