Lucfire ha scritto:
Il personale presenta un documento per il pagamento degli straordinari dove di volta in volta cambia la tipologia ma all'interno dello stesso foglio ci possono essere più periodi. Di conseguenza ho dovuto fare la terza tabella. Penso che dal punto di vista della struttura il DB sia concepito bene.
Il controllo serve ad evitare che venga presentato un documento per il pagamento degli straordinari in momenti diversi ma con stessi periodi di lavoro.
non sono d'accordo, io probabilmente avrei fatto un'unica tabella TBL_Straordinari così composta:
ID_Straordinario (PK)
ID_Personale (FK sulla TBL_Personale)
Tipologia straordinario
Sede (al momento dello straordinario)
Qualifica (al momento dello straordinario)
DataOraInizio
DataOraFine
pensaci, sono tutti dati appartenenti allo stesso concetto, poco importa se presentano un documento con varie voci per la stessa tipologia e qualifica.
Tecnicamente a quel punto avresti potuto mettere come univoci i campi senza problemi
Al momento dell'inserimento del nuovo record mantieni i dati necessari (sede, tipologia e qualifica) dall'ultimo inserimento, oppure ancora meglio li avrei messi nell'anagrafica (almeno qualifica e forse sede, dipende) come "dato in linea" e li avrei ribaltati sulla TBL_straordinari come storico (anzi in un applicativo di Medicina Del Lavoro che ho fatto ho proprio quest'ultima situazione, anche se non si parla di straordinario ma di visite)
EDIT: se non vuoi cambiare struttura puoi passare da una dlookup/dcount/dmax ... certo ... ma rimane che per me la struttura è sbagliata e te lo dimostrano queste complicazioni.