OsvaldoLaviosa ha scritto:
Il mio punto di vista non ci vede chiaro sulla NORMALIZZAZIONE del tuo database. Se non esponi chiaramente TUTTE le tabelle con tutti i campi e le RELAZIONI (importantissime), almeno io non riesco a venire a capo di nulla sul tuo progetto.
Da quel poco che ho recepito dalla tua esposizione, ci vedrei almeno le seguenti tabelle:
Dipendenti
Corsi
Partecipazioni
Relazioni:
Dipendenti uno-a-molti Partecipazioni
Corsi uno-a-molti Partecipazioni
Questo perché a un Corso possono partecipare molti Dipendenti. Un Dipendente può partecipare a molti Corsi.
Ok ci provo e che avevo paura che le cose diventassero troppo lunghe
Tabelle:
Dipendenti: Id (PK); Nome; Cognome; Mansione (ID Casella combinata da tb mansioni) (Più valori); Tipologia Contratto; Sesso; Data fine rapporto di lavoro
Sessioni di formazione:ID (PK), Data; Titolo Corso;Data Programmazione; Materiale informativo; Ore sessione; Docenti; Sede Docenza; Moduli (ID casella combinata da tb Moduli) (Più valori). Personale in debito (ID Casella combinata da tb Dipendenti) (Più valori)
Moduli: ID(PK); Modulo; Descrizione; Frequenza; Preavviso
Tralascio le tabelle che sono interessate solo alla ricerca che sono: Mansioni; Storico Incarico Mansioni ai dipendenti; Pericoli; Storico associazione pericolo_mansione; Storico associazione pericolo_rischio; Storico associazione rischio_moduli
Con una query di selezione e dei criteri impostati sono riuscita a impostare delle maschere di ricerca che mi trovano i dipendenti che hanno dei debiti e la ricerca può essere fatta per data, per dipendente (con associata anche una sottomaschera o con le informazioni sulle mansioni) e per moduli frequentati.
Il risultato della ricerca deve aiutarmi a popolare una tabella programmazione della sessione.
Quindi la tabella Programmazione è così formata:
ID(PK); Data di pianificazione; Protocollo; Titolo Corso; data Programmazione corso; MODULI (ID; Casella combinata da query chiamata Modulo_ore che nella stinga mi fa vedere sia il nome del modulo che le ore previste per quel modulo)(PIU' valori);
Ore sessione (qui vorrei che venisse calcolato la somma delle ore dei moduli che sono stati selezionati nel campo moduli)
Le relazioni sono:
Dipendenti-moduli = Uno a molti;
Sessioni di formazione - Dipendenti = Molti a molti (relazione intermediata da una tabella di collegamento (id; Id dipendente; Id Sessione);
Sessioni_Moduli =uno a molti
Quindi la tabella programmazione avrebbe
TB Programmazione - Dipendenti= uno a molti
Moduli = uno a molti
che dici? può bastare?