|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: May 2008
Messaggi: 9
|
dubbio associazioni nel progettare un database
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 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
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.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: May 2008
Messaggi: 9
|
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? |
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: May 2008
Messaggi: 9
|
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? |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:11.