PDA

View Full Version : dubbio associazioni nel progettare un database


blackrose74
21-06-2009, 15:20
Ciao a tutti vi pongo un mio dubbio riguardo alla modellazione di questa situazione (la descrivo in breve e semplificata):
un contadino gestisce una fattoria composta da più campi.
ho creato l'entità contadino (nome, cognome), l'entità fattoria (nome, denaro) e l'entità campo (nome, tipo di coltura, quantita di coltura, prezzo della singola coltura). Il problema richiede che il contadino gestisca la fattoria e i campi cambiando i valori delle colture e aggiornando in automatico il valore di denaro della fattoria. Le associazioni che ho creato sono : gestisce tra contadino e fattoria (un contadino gestisce un'unica fattoria e una fattoria può essere gestita da un solo contadino); composta da tra fattoria e campo (una fattoria è composta o possiede + campi, ma un campo deve appartenere ad un unica fattoria) e infine gestisce tra contadino e campo (un contadino può gestire + campi ma un campo deve essere gestito da un solo contadino).
Ora il mio dubbio è questo: devo tenere tutte e tre le associazioni o posso eliminare quella tra "contadino" e "campo" visto che la posso ottenere indirettamente dalle altre due : il contadino che gestisce la fattoria in cui c'è il campo indirettamente gestisce anche il campo.
Voi cosa fareste a livello teorico, non in pratica o per velocizzare le ricerce ma solo come progetto teorico che rispetti le regole?
Grazie mille

banryu79
22-06-2009, 13:31
Per quello che può valere: uno o più campi sono in relazione con una ed una sola fattoria; una e una sola fattoria è in relazione con uno e un solo contadino.

Quindi, indirettamente, il contadino viene relazionato ai campi della fattoria.

blackrose74
28-06-2009, 20:51
grazie è proprio come pensavo io, essendoci una relazione indiretta posso eliminare quella esplicita inserita all'inizio.
Questo vale in pratica, ma a livello teorico è giusto ho sto violando delle regole di pprogettazione?

blackrose74
28-06-2009, 20:53
grazie è proprio come pensavo io, essendoci una relazione indiretta posso eliminare quella esplicita inserita all'inizio.
Questo vale in pratica, ma a livello teorico è giusto o sto violando delle regole di progettazione?

banryu79
29-06-2009, 10:12
Questo vale in pratica, ma a livello teorico è giusto o sto violando delle regole di progettazione?
Non lo so, per questo ho esordito con un "Per quello che può valere..." :D