14/02/2024 - lucacar001 ha scritto:
il primo link dice che l'association
class non è adatta per modellare il caso in cui il datore di lavoro lasci e poi ritorni nuovamente nella stessa azienda perché appunto l'associazione tra azienda e persona deve essere unica o meglio può esserci una sola istanza della classe di associazione tra due oggetti partecipanti.
Sono spiegazioni su come fare un'associazione corretta.
Non possono esserci due assunzioni contemporanee per la stessa azienda (in quel caso avresti un'associazione sbagliata perchè progettata per essere unica).
Non puoi creare un'associazione unica tra dipendente e azienda perche' il dipendente potrebbe dimettersi o essere licenziato e poi riassunto.
Come nella prima risposta, l'immagine mostra degli step per identificare il tipo di associazione corretto.
in soldoni (molto soldoni):
se filippo ha soltanto un lavoro e non puo' avere altri lavori e/o non puo' essere assunto piu' di una volta, allora vale la prima (1 a 1 ossia un oggetto di a va associato ad un solo oggetto di b).
se filippo puo' fare due part-time (uso la stessa logica) allora per a posso associare n oggetti di b (cioe' lavora 4 ore da pippo e 4 ore da pluto).
Per la terza mi prendo una licenza poetica. se filippo lavora per pippo (come programmatore) e pippo lavora per filippo (come amministratore) allora ho il terzo caso cioe' filippo e' sia dipendente che datore di lavoro di pippo e viceversa.
in questo caso avremmo l'associazione filippo-pluto ma pluto-filippo non potrebbe esistere perchè sono gia' associati. allora interviene un'altra classe che mi permette di fare:
filippo-a-pluto e pluto-b-filippo dove la terza classe ha come associazione a-b dive a si associa a filippo e b a pluto.
14/02/2024 - lucacar001 ha scritto:
Quello che mi chiedo è, se nell'association class è presente un attributo di tipo periodo:Date, se il datore di lavoro ritorna dopo tempo nella stessa azienda il record della tabella non sarà in ogni caso diverso? Perché appunto la data di ritorno è diversa?
la terza classe e' appunto “periodo”. (cosa che non e' presente nel primo caso) quindi non e' associato direttamente ma tramite “periodo”.
se ho solo dipendente e ditta, posso dire che filippo lavora o ha lavorato per pluto e basta.
se inserisco la classe tempo (quindi persona, azienda e periodo) posso dire che filippo ha lavorato dal al presso pippo, dal al presso pippo e dal al presso pippo tre associazioni uniche (due costanti “filippo e pippo” ma una diversa “dal al”. e ti riporta nella seconda associazione della prima immagine.
se anche pippo lavora o ha lavorato per filippo ti ritrovi nel terzo caso (sempre con molta molta fantasia).
spero di non aver confuso le idee…