Devo esserti sincero che le idee chiare-chiare non le ho nemmeno io. Però proviamo a ragionare a piccoli passi.
OsvaldoLaviosa ha scritto:
Fatti
IDFatto
DataFatto
Fatto (qui ci scrivi la motivazione, ossia Idoneità, Infortunio...)
IDPersona (FK)
Questa tabella potrebbe essere migliorata. Il campo Fatto potrebbe essere rinominato in Motivazione. Poi si potrebbe aggiungere un campo di tipo Sì/No che chiamerei Idoneo.
Ne consegue che
gli ULTIMI record (Max([DataFatto])) di ogni Persona ci diranno se Tizio è Idoneo o no. Non basta perché c'è anche da considerare la DataScadenza. Dopo un Anno e comunque dopo una certa DataScadenza (mo dobbiamo vedere come calcolarla), se la Persona non si sottopone a controllo perde comunque l'idoneità. Direi che quest'ultimo aspetto va gestito diversamente.
Con quale valore in Motivazione vorresti che venisse ricalcolata la DataScadenzaIdoneità?