Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Schema ER database gestione immpresa edile

    Salve a tutti sono nuovo del forum e anche dell'approcio ai database.. Vi scrivo per avere qualche informazione correzione e consiglio su un progetto che devo completare riguardante un db di gestione per una impresa edile.
    Ho buttato giù quella che potrebbe essere una bozza del diagramma ER definendo le varie entità e relazioni di cui sotto do una descrizione veloce.

    DIPENDENTE: diviso a sua volta in progettista, operai, autista ecc) con attributi quali CF, nome, cognome, data assunzione, stipendio ecc

    ogni dipendente può lavorare per uno o più cantieri

    CANTIERE: nome, indirizzo, ecc

    COMMITTENTE: p.iva, nome, num ecc

    in cui ogni commmittente può richiedere l'apertura di uno o più cantieri e ogni cantiere ha uno ed un solo committente

    Qui inizia la parte che mi ha presentato i maggiori problemi in quanto voglio rappresentare per ogni cantiere le materie prime richieste(acquistate ogni volta dai fornitori) e l'attrezzatura necessaria(gru, martelli, ecc) presente in magazzino.
    Avevo pensato di creare l'entità MATERIA_PRIMA e di legarla a CANTIERE con una relazione binaria avente come attributo quantità in modo da sapere per ogni cantiere quali MP richiede e in che quantita, ora avevo creato una relazione ternaria legante le entità CANTIERE, MATERIA_PRIMA e FORNITORE in modo da poter chiedere ad esempio per ogni cantiere quali mp prime richiede e quale fornitore me le fornisce.
    Infine ho creato l'entità ATTREZZATURA legata a cantiere tramite una relazione binaria con come attributo la quantità richiesta; ATTREZZATURA presenta gli attributi ID e quantità ancora presente in magazzino.

    Essendo la prima volta che approcio a tale mondo le mie domande possono essere banali o stupide ma vorrei proprio sapere le cose che magari per uno che tratta il campo da anni risulterebbero banali.. Ad esempio avrei le entità CANTIERE e MATERIA_PRIMA legate dalla relazione quantità che serve ma queste due partecipano a loro volta nella relazione ternario con FORNITORE..ciò è possibile o risulta una violazione di qualche tipo?

    Vi ringrazio per il tempo dedicato,
    sempre troppo gentili, PEACE!

  2. #2
    Ciao,

    mentre hai piu' o meno detto cosa hai fatto non hai dato indicazione nelle relazioni di che tipo di relazioni usi.

    Se 1:1, 1:n o n:m. Questa indicazione puo' sicuramente essere rilevante per darti qualche risposta ben pensata
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Quote Originariamente inviata da bomberdini Visualizza il messaggio
    Ciao,

    mentre hai piu' o meno detto cosa hai fatto non hai dato indicazione nelle relazioni di che tipo di relazioni usi.

    Se 1:1, 1:n o n:m. Questa indicazione puo' sicuramente essere rilevante per darti qualche risposta ben pensata
    Effetivamente è proprio di queste informazioni e dritte di cui ho bisogno per prendere familiarità Allora io le avevo pensate così:
    -tra DIPENDENTE e CANTIERE la relazione LAVORA è 1:n e 1:n (un dipendente deve lavorare almeno in un cantiere ma può lavorare in più cantieri, viceversa in un cantiere deve lavorare almeno un dipendente ce ne possono lavorare anche di più)
    -tra CANTIERE e COMMITENTE la relazione RICHIEDE APERTURA è 1:n nel senso che un commitente deve richiedere di aprire di aprire almeno un cantiere ma ne può richiedere di più e 1:1 nel senso che un cantiere deve avere esattamente un solo committente
    -tra CANTIERE e MATERIA_PRIMA la relazione quantità è 1:n nel senso che un cantiere deve richiedere almeno una mp ma può richiederne n e 1:n nel senso che una mp può essere richiesta da più cantieri.. (questa l'ho fatta solo per poter rendere possibile una richiesta a che materiali servono per un determinato cantiere perchè mettendolo come attributo di cantiere non riuscirei a differenziare i vari tipi di mp che servono) (almeno credo ) questa relazione ha inoltre l'attributo quantità per sapere per ogni mp che un determinato cantiere richieder quanta ne richiede..
    -relazione ternaria tra CANTIERE MATERIA_PRIMA e FORNITORE tutte 1:n in modo da poter richiedere ad esempio quale fornitore ha fornito quale materia prima a quale cantiere (il magazzino centrale si intende deposito solamente per le attrezzature e non per le materie prime)
    -relazione tra CANTIERE e ATTREZZATURA del tipo 0:n (un cantiere può non richiedere attrezzatura particolare e può richiederne n) con l'attributo quantità (in modo da poter formalizzare ad esempio il fatto che se in magazzino ho 10 martelli e e 9 sono già nei cantieri aperti e richiedo di aprire un cantiere in cui mi servono 4 martelli non possa farlo)

  4. #4
    dunque da una prima lettura le considerazioni che fai mi sembrano corrette tramite per la relazione ternaria.

    A mio parere basta inserire una relazione tra MATERIA PRIMA e FORNITORE del tipo 1:n

    E, poiche c'è gia una relazione tra CANTIERE e MATERIA PRIMA, puoi ricavare tutte le informazioni che vuoi tramite JOIN.


    Ora come ulteriore considerazione, un progetto si definisce buono se , consente di rispondere ai requisiti dell'utente , che detto in termini di Basi Dati sarebbe, un progetto è buono se consente di rispondere alle principali query.

    Quindi, dovresti postare le interrogazioni tipiche richieste e da li possiamo decidere. In base a quelle potremmo dire che il tuo progetto è ottimo oppure tutto sbagliato
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  5. #5
    Grazie mille infatti l'avevo già modificato legando FORNITORE a MATERIA PRIMA ed eliminando il collegamento diretto a CANTIERE.. con un impostazione del genere dovrei essere in grado di rispondere a richieste del tipo chi sta lavorando in un determinato cantiere, quanto percepisce, quali materiali o attrezzature necessita tale cantiere, potrei chiedere quante delle attrezzature diponibili in azienda non siano utilizzate in altri cantieri aperti e quindi disponibili per lavori futuri ecc..

    Ora buttando l'occhio mi è venuto un dubbio.. io l'entità DIPENDENTE l'ho divisa in PROGETTISTI, OPERAI e AUTISTI e ognuna di queste entità figlie ha l'attributo stipendio, in modo da poter distinguere i vari tipi di dipendenti. Tutto questo è conveniente o mi conviene inserire un attributo tipo in DIPENDENTE e per ognuno indicare qual'è il suo ruolo? ancora stipendio ha senso tenerlo attributo o è più logico creare un'entità STIPENDIO e legarla a DIPENDENTE ad esempio con una relazione PERCEPISCE?
    Ultima modifica di fredy_krueger; 18-02-2014 a 23:45

  6. #6
    La gerarchia ha senso se le entita hanno parecchi attributi diversi

    se nel tuo caso sono gli stessi,
    Aggiungere il campo tipo e' la soluzione migliore.

    Per lo stipendio, se e' solo un numero ad esempio 1000€ non ha senso creare una nuova entita.
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.