Consiglio per progettazione di una base di dati

di il
5 risposte

Consiglio per progettazione di una base di dati

Salve a tutti, premetto che sono nuovo e ho trovato il forum per caso in cerca di aiuti per la progettazione del mio database.
Sto studiando database all'università e ho un progetto da fare però mi sono bloccato e non sono sicuro del mio lavoro.

Questa è la richiesta:
"Progettare un sistema per la gestione della prenotazione aule. Nelle aule si tengono i corsi a determinati orari, i corsi sono insegnati dai docenti. La prenotazione delle aule si può ripetere con una cadenza temporale. La prenotazione ha una durata in ore. Gestire i conflitti nella prenotazione."

Nella fase di progettazione concettuale e logica sono arrivato a scrivere un diagramma E/R anche se ancora allo stato scheletro.
Ecco: Nell'immagine gli attributi Dati "qualcosa" intende che sono più attributi secondari che non ho ancora scritto e in più mancano le cardinalità delle associazioni [ (1,n),(1,1),(0,n),ecc... ]

Ho alcuni dubbi sulle associazioni e come dovrei gestire i conflitti e/o le cadenze temporali delle prenotazioni una volta implementata la base di dati su mySQL workbench (sto usando quello per il momento).

Come posso modificare lo schema in modo tale da evitare questi problemi?

Grazie in anticipo per le risposte.

5 Risposte

  • Re: Consiglio per progettazione di una base di dati

    Semplice, non puoi.
    dovresti fare un'esplosione a ore, ma dubito sia quello l'esercizio
  • Re: Consiglio per progettazione di una base di dati

    Posso gestire poi questi problemi con trigger/vincoli una volta implementata la base di dati oppure direttamente dall'applicazione futura che userà suddetto db, giusto? Ma lo schema, logicamente, è corretto?
  • Re: Consiglio per progettazione di una base di dati

    Dipende a che livello siete, suppongo minimo.
    Quello che avresti potuto fare è, dentro ogni aula, metterci le 8760 ore che ci sono in un anno, per indicare se è occupata o no in quell'ora.

    Ti faccio notare che non hai ben riflettuto su cosa significhi "cadenza temporale".
    Puoi fare da applicazione, o cercare di "sbobinare" almeno in parte nel db
  • Re: Consiglio per progettazione di una base di dati

    Si il mio livello in progettazione è minimo .
    Capisco ciò che mi vuoi dire ma se io faccio una query per la richiesta di un'aula del tipo:
    Un Docente richiede l'Aula, se non esiste una prenotazione di quell'aula che sia per cadenza temporale o meno, che si sovrapponga ad un'altra prenotazione nella relazione Prenotazione, allora può inserire la prenotazione. Così non dovrebbe andare? Perchè dovrei mettere il dato ridondante di tutte le ore per ogni aula?

    Grazie ancora per le risposte.
  • Re: Consiglio per progettazione di una base di dati

    Niente sto modificando lo schema, quando ne esce fuori qualcosa vi posto gli aggiornamenti e mi dite se c'è qualcosa che non va. Grazie per l'aiuto.
Devi accedere o registrarti per scrivere nel forum
5 risposte