Relazioni "complesse" fra tabelle Access

di il
7 risposte

Relazioni "complesse" fra tabelle Access

Buongiorno,

sottopongo un caso che può essere banale, ma che mi sta mettendo in difficoltà. Il mio database Access contiene, fra le altre, due tabelle:

Volontari                            Turni

volID                                    turnoID

volontario                           volontario_1

                                              volontario_2

                                              volontario_3

Necessito mettere in relazioni uno-a-molti le due tabelle. Il problema nasce dal fatto che un "volontario" della prima tabella può comparire in una qualsiasi delle tre posizioni previste nella seconda (1,2,3). Come fare? Esiste una soluzione?

Spero di essere stato chiaro e ringrazio anticipatamente.

Orazio Ragonesi

7 Risposte

  • Re: Relazioni "complesse" fra tabelle Access

    Ciao, la struttura delle tabelle è sbagliata e non implementa le regole della normalizzazione.

    La volta che si decide di mettere 4 persone per ogni turno cosa fai?

    La tabella dei turni è una entità e deve fare solo quello di mestiere.

  • Re: Relazioni "complesse" fra tabelle Access

    Ti serve invece una tabella di mapping che metta in relazione la tabella dei volontari con quella dei turni.

    I tre campi volontari vanno rimossi dalla tabella dei turni

  • Re: Relazioni "complesse" fra tabelle Access

    Ciao, grazie.

    Ti posso solo dire che i volontari sono e saranno tre al massimo, mai potranno essere quattro.

    Come posso strutturare le due tabelle?

    Orazio

  • Re: Relazioni "complesse" fra tabelle Access

    21/11/2023 - Liguria23 ha scritto:


    Buongiorno,

    sottopongo un caso che può essere banale, ma che mi sta mettendo in difficoltà. Il mio database Access contiene, fra le altre, due tabelle:

    Volontari                            Turni

    volID                                    turnoID

    volontario                           volontario_1

                                                  volontario_2

                                                  volontario_3

    Necessito mettere in relazioni uno-a-molti le due tabelle. Il problema nasce dal fatto che un "volontario" della prima tabella può comparire in una qualsiasi delle tre posizioni previste nella seconda (1,2,3). Come fare? Esiste una soluzione?

    Spero di essere stato chiaro e ringrazio anticipatamente.

    Orazio Ragonesi

    Hai difficoltà nella relazione? Nel senso che non sai come creare una relazione?

    https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://m.youtube.com/watch%3Fv%3Dmcv3NuW6PTc&ved=2ahUKEwiExa_j79SCAxUDQvEDHTCpBOIQwqsBegQICBAF&usg=AOvVaw1IGEy0f0HewP__OQg7wAlC

    Comunque se la chiami relazione 1 a molti la domanda “esiste una soluzione” non ha ragione di essere formulata.

  • Re: Relazioni "complesse" fra tabelle Access

    Ringrazio entrambi per avermi cortesemente risposto.

    Riconosco che sia l'argomento, sia il forum che lo tratta, sono ad un livello di molto superiore a quello che posso esprimere io.

    Auguro buon proseguimento.

    Orazio

  • Re: Relazioni "complesse" fra tabelle Access

    21/11/2023 - Liguria23 ha scritto:


    Ciao, grazie.

    Ti posso solo dire che i volontari sono e saranno tre al massimo, mai potranno essere quattro.

    Come posso strutturare le due tabelle?

    Orazio

    Quello che ha suggerito Toki, è semplicemente di rifarti alla 3FN, quindi di realizzare una MOLTI-MOLTI chie richiede 3 Tabelle, a te manca la centrale...

    tbl ANAGRAFICHE(1) <--> (M) tbl AnagrPerTurno (M) <---> (1) tbl Turni

    In questo modo puoi definire in modo indipendente le entità di Volontari per Turno, che magari saranno sempre 3, ma magari un giorno capita siano 2…

  • Re: Relazioni "complesse" fra tabelle Access

    Tu l'hai pensata così:

    la molti a molti potrebbe anche non servire.

    credo che ti serva un calendario mensile da revisionare di volta in volta.

    gli operatori li prendi dalla tabella operatori. in fase di inserimento selezioni il giorno della settimana, ti crei una query che quando inserisci al doppio click (per fare figo) un operatore viene tolto dall'elenco operatori (a meno che non abbiano il dono dell'ubiquità).

    in fase di consultazione puoi:

    • filtrare per 1 o più operatori
    • filtrare per giorno della settimana
    • filtrare dal… al…
    • eliminare obsoleti da 6 mesi
    • il resto lascio alla tua fantasia…
Devi accedere o registrarti per scrivere nel forum
7 risposte