COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

di il
22 risposte

COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

Buongiorno,

sto cercando di creare un database per la gestione dei documenti cartacei di varie pratiche.

Il problema che ho da risolvere è il seguente, pongo un esempio.

Ho la pratica n. X che è stata aperta il 18/01/2023, nell'arco dell'anno si sono aggiunte integrazioni, mail e altri documenti con numerazioni differenti che fanno riferimento alla pratica n. X. 

I documenti successivi potrebbero fare riferimento ad altre pratiche oltre che alla pratica n. X. 

Ad un certo punto mi viene chiesto di trovare alcuni o tutti i documenti collegati a questa pratica n. X. 

E' possibile collegate tramite IDpratica 2 o più record della stessa tabella?

L'idea era creare un database di registro di questo tipo:

IDpratica

Data apertura

Data scadenza (se prevista)

Codice_del_documento

Tipo di documento

Descrizione

Percorso (creo una cartella per evitare di appesantire il database e inserisco il link)

Soggetto

Pratrica/e collegate

Attendo un Vostro consiglio o suggerimento.

Grazie mille

22 Risposte

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    Non so se ho capito bene…

    La pratica 100 ha n allegati e può essere a sua volta allegato della pratica 130?

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    Sostituisci il campo descrizione con id_tipo_documemto di tipo numerico e crea una tabella tipi_documenti. Poi crea una tabella soggetti e inserisci il campo id_soggetto nella tabella pratica. Collega uno a molti le due tabelle alla tabella pratiche.

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    27/12/2023 - Monster88 ha scritto:


    Ho la pratica n. X che è stata aperta il 18/01/2023, nell'arco dell'anno si sono aggiunte integrazioni, mail e altri documenti con numerazioni differenti che fanno riferimento alla pratica n. X. 

    Solo per questo ti servono 2 tabelle Pratiche e DocumentiPratiche con la relazione Pratiche.IDPratica uno-a-molti DocumentiPratiche.IDPratica.

    27/12/2023 - Monster88 ha scritto:


    I documenti successivi potrebbero fare riferimento ad altre pratiche oltre che alla pratica n. X. 

    Allora prevedi una 3a tabella Documenti e struttura tutto più o meno così:

    Pratiche
    IDPratica (PK)
    altri campi…

    Documenti
    IDDocumento (PK)
    altri campi…

    DocumentiPratiche
    IDDP (PK)
    IDPratica (FK)
    IDDocumento (FK)
    altri eventuali campi…

    Relazioni:
    Pratiche.IDPratica uno-a-molti DocumentiPratiche.IDPratica
    Documenti.IDDocumento uno-a-molti DocumentiPratiche.IDDocumento

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    27/12/2023 - sihsandrea ha scritto:


    Non so se ho capito bene…

    La pratica 100 ha n allegati e può essere a sua volta allegato della pratica 130?

    Intanto grazie della risposta.

    Cerco di spiegarmi meglio:

    la pratica 100 ha n allegati e può essere collegata alla pratica 130 che ha a sua volta n allegati e può essere collegata a sua volta alla pratica 160 che a sua volta ha n allegati.

    L'idea è poi riuscire a creare una query che mi dica la pratica 100 è collegata alle pratiche 130 e 160, cosi io posso recuperarmi i documenti che mi servono

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    27/12/2023 - Monster88 ha scritto:

    L'idea è poi riuscire a creare una query che mi dica la pratica 100 è collegata alle pratiche 130 e 160, cosi io posso recuperarmi i documenti che mi servono

    Possiamo dire per il momento che la presenza degli allegati è un fatto trascurabile, gestibile con una relazione uno a molti abbastanza classica?

    27/12/2023 - Monster88 ha scritto:

    la pratica 100 è collegata alle pratiche 130 e 160

    C'è la possibilità, anche futura, che ad esempio ci sia una pratica 200 legata alla pratica 130 e che quindi è collagata alla 100 tramite la 130? Ti servirebbe reperire anche quella? Una pratica ad una pluralità di altre pratiche, tipo la 220 che è collegata sia alla 205 sia alla 210? Sembra difficile da leggere ma facendo qualche caso concreto riesci a capire subito se può accadere o meno. Mi raccomando, anche in ottica futura (nel limite di quanto si possa "conoscere il futuro”, ovviamente)

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    Ok, pensavo che la pratica 100 poteva essere un allegato della pratica 130, invece (da come scrivi lo fa già) alcuni allegati della 100 sono anche allegati della 130…

    Una query che filtra per allegato…

    Come una query che inserendo un articolo ti mostra quanti documenti contengono quell'artico o quanti clienti hanno preso quell'articolo.

    Suppongo che il collegamento molti a molti sia già impostato correttamente, quindi basta che la tabella chiamante sia la pratica (un articolo nel mio esempio) inner join con allegati (fatture nel mio esempio) where allegati.allegato=pratiche.allegato

    27/12/2023 - Monster88 ha scritto:


    L'idea è poi riuscire a creare una query che mi dica la pratica 100 è collegata alle pratiche 130 e 160, cosi io posso recuperarmi i documenti che mi servono

    Anche se questa citazione mi catapulta alla mia prima domanda… a meno che per “collegata” non intendi che hanno allegati in comune.

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    Dimenticavo…. Oltre a seguire le istruzioni che ti hanno dato…

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    27/12/2023 - Philcattivocarattere ha scritto:


    la pratica 100 ha n allegati e può essere collegata alla pratica 130 che ha a sua volta n allegati e può essere collegata a sua volta alla pratica 160 che a sua volta ha n allegati.

    27/12/2023 - Philcattivocarattere ha scritto:


    27/12/2023 - Monster88 ha scritto:

    L'idea è poi riuscire a creare una query che mi dica la pratica 100 è collegata alle pratiche 130 e 160, cosi io posso recuperarmi i documenti che mi servono

    Possiamo dire per il momento che la presenza degli allegati è un fatto trascurabile, gestibile con una relazione uno a molti abbastanza classica?

    27/12/2023 - Monster88 ha scritto:

    la pratica 100 è collegata alle pratiche 130 e 160

    C'è la possibilità, anche futura, che ad esempio ci sia una pratica 200 legata alla pratica 130 e che quindi è collagata alla 100 tramite la 130? Ti servirebbe reperire anche quella? Una pratica ad una pluralità di altre pratiche, tipo la 220 che è collegata sia alla 205 sia alla 210? Sembra difficile da leggere ma facendo qualche caso concreto riesci a capire subito se può accadere o meno. Mi raccomando, anche in ottica futura (nel limite di quanto si possa "conoscere il futuro”, ovviamente)

    Questa situazione mi ricorda il mio database dove ci sono Titoli (di canzoni per esempio) con denominazioni diverse, ma tutte risalenti allo stesso melodia/testo (es. “Nel blu dipinto di blu” = “Volare” = “Penso che un sogno così”).
    Ferme restanti le tabelle Pratiche uno-a-molti Allegati, crea una tabella PraticheMultiple con i campi:
    IDPM (PK)
    IDPratica1 (FK)(questa sarà sempre la stessa, quella che tu eleggi come più importante, per esempio la più remota)
    IDPratica2 (FK)(qui associ tutte le successive)

    Doppia relazione tra le 2 tabelle:
    Pratiche.IDPratica uno-a-molti PraticheMultiple.IDPratica1
    Pratiche.IDPratica uno-a-molti PraticheMultiple.IDPratica2

    27/12/2023 - Monster88 ha scritto:


    L'idea è poi riuscire a creare una query che mi dica la pratica 100 è collegata alle pratiche 130 e 160, cosi io posso recuperarmi i documenti che mi servono

    Qua mi perdo un po'…Nel caso sarebbe necessario creare anche il record (in tabella PraticheMultiple):
    IDPratica1 = 100
    IDPratica2 = 100
    Valuta tu come ottimizzare questa situazione.

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    27/12/2023 - Antony73 ha scritto:


    Sostituisci il campo descrizione con id_tipo_documemto di tipo numerico e crea una tabella tipi_documenti. Poi crea una tabella soggetti e inserisci il campo id_soggetto nella tabella pratica. Collega uno a molti le due tabelle alla tabella pratiche.

    Grazie della risposta

    Il campo descrizione mi serve per sapere indicativamente a cosa si riferisce la pratica senza doverle aprire una per una.

    Ipotizzando di creare le tabelle:

    • tipi_documenti con i campi
      • id_tipo_documemto di tipo numerico
      • (altri campi)
    • Soggetti con i campi:
      • id_soggetto
      • (altri campi)

     di inserire i campi id_tipo_documemto e id_soggetto collegandoli uno a molti con la tabella pratiche,

    non riesco a capire come due record di due pratiche differenti si collegano.

    Forse ho capito male io o mi sono spiegato male

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    27/12/2023 - Philcattivocarattere ha scritto:


    27/12/2023 - Monster88 ha scritto:

    L'idea è poi riuscire a creare una query che mi dica la pratica 100 è collegata alle pratiche 130 e 160, cosi io posso recuperarmi i documenti che mi servono

    Possiamo dire per il momento che la presenza degli allegati è un fatto trascurabile, gestibile con una relazione uno a molti abbastanza classica?

    27/12/2023 - Monster88 ha scritto:

    la pratica 100 è collegata alle pratiche 130 e 160

    C'è la possibilità, anche futura, che ad esempio ci sia una pratica 200 legata alla pratica 130 e che quindi è collagata alla 100 tramite la 130? Ti servirebbe reperire anche quella? Una pratica ad una pluralità di altre pratiche, tipo la 220 che è collegata sia alla 205 sia alla 210? Sembra difficile da leggere ma facendo qualche caso concreto riesci a capire subito se può accadere o meno. Mi raccomando, anche in ottica futura (nel limite di quanto si possa "conoscere il futuro”, ovviamente)

    Grazie mille della risposta

    Si gli allegati sono trascurabili, una volta che ho il numero delle varie pratiche collegate vado a reperire le pratiche e prender i documenti che mi servono

    In ottica futura:

    molto probabilmente accadrà che ci sia una pratica 200 legata alla pratica 130 e che quindi è collegata alla 100 tramite la 130, molto probabilmente si.

    Provo a descrivere diversamente quello che ho in mente. 

    Apro la pratica 200 e nella maschera ho un elenco delle pratiche a cui è collegata es. 130

    mi copio i documenti che mi servono, chiudo la pratica e apro la pratica e apro la pratica 130 che a sua volta è collegata alla 100 e così via.

    Spero di essere stato più chiaro

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    27/12/2023 - Monster88 ha scritto:


    non riesco a capire come due record di due pratiche differenti si collegano.

    Perché devono essere collegate se sono pratiche differenti? Ogni pratica ha dati differenti dalle altre: date, d'iscrizione, ecc. L' unica cosa che possono avere in comune sono soggetti, tipo documenti, ditte (se si indicizzare pure questo). Per questa ragione si introducono chiavi primarie e chiavi secondarie. Alla fine il db deve essere normalizzato.

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    Secondo me ti stai perdendo in un bicchier d'acqua.

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    27/12/2023 - OsvaldoLaviosa ha scritto:


    27/12/2023 - Philcattivocarattere ha scritto:


    la pratica 100 ha n allegati e può essere collegata alla pratica 130 che ha a sua volta n allegati e può essere collegata a sua volta alla pratica 160 che a sua volta ha n allegati.

    27/12/2023 - Philcattivocarattere ha scritto:


    27/12/2023 - Monster88 ha scritto:

    L'idea è poi riuscire a creare una query che mi dica la pratica 100 è collegata alle pratiche 130 e 160, cosi io posso recuperarmi i documenti che mi servono

    Possiamo dire per il momento che la presenza degli allegati è un fatto trascurabile, gestibile con una relazione uno a molti abbastanza classica?

    27/12/2023 - Monster88 ha scritto:

    la pratica 100 è collegata alle pratiche 130 e 160

    C'è la possibilità, anche futura, che ad esempio ci sia una pratica 200 legata alla pratica 130 e che quindi è collagata alla 100 tramite la 130? Ti servirebbe reperire anche quella? Una pratica ad una pluralità di altre pratiche, tipo la 220 che è collegata sia alla 205 sia alla 210? Sembra difficile da leggere ma facendo qualche caso concreto riesci a capire subito se può accadere o meno. Mi raccomando, anche in ottica futura (nel limite di quanto si possa "conoscere il futuro”, ovviamente)

    Questa situazione mi ricorda il mio database dove ci sono Titoli (di canzoni per esempio) con denominazioni diverse, ma tutte risalenti allo stesso melodia/testo (es. “Nel blu dipinto di blu” = “Volare” = “Penso che un sogno così”).
    Ferme restanti le tabelle Pratiche uno-a-molti Allegati, crea una tabella PraticheMultiple con i campi:
    IDPM (PK)
    IDPratica1 (FK)(questa sarà sempre la stessa, quella che tu eleggi come più importante, per esempio la più remota)
    IDPratica2 (FK)(qui associ tutte le successive)

    Doppia relazione tra le 2 tabelle:
    Pratiche.IDPratica uno-a-molti PraticheMultiple.IDPratica1
    Pratiche.IDPratica uno-a-molti PraticheMultiple.IDPratica2

    27/12/2023 - Monster88 ha scritto:


    L'idea è poi riuscire a creare una query che mi dica la pratica 100 è collegata alle pratiche 130 e 160, cosi io posso recuperarmi i documenti che mi servono

    Qua mi perdo un po'…Nel caso sarebbe necessario creare anche il record (in tabella PraticheMultiple):
    IDPratica1 = 100
    IDPratica2 = 100
    Valuta tu come ottimizzare questa situazione.

    Grazie mille per la risposta

    Qui mi sono perso io, probabilmente hai valutato delle ipotesi che a me ancora non sono venute in mente

    Forse mi sto complicando io la vita.

    Mi è venuta in mente una soluzione che non so se sia corretta ma mi sembra più semplice:

    Creo la tabella Pratiche con il campo IDpratica, (altri campi), Pratiche_collegate di tipo testo

    ogni volta che inserisco una nuova pratica nel campo Pratiche_collegate inserisco il o i numeri di pratiche a cui è collegata del tipo (100 - 130 - 170)

    creo una query che filtri solo le pratiche che contengano nel campo Pratiche_colegate per esempio il n. 100, secondo te può funzionare?

  • Re: COLLEGARE 2 O PIU' RECORD DELLA STESSA TABELLA ACCESS

    27/12/2023 - Monster88 ha scritto:


    Mi è venuta in mente una soluzione che non so se sia corretta ma mi sembra più semplice:

    Creo la tabella Pratiche con il campo IDpratica, (altri campi), Pratiche_collegate di tipo testo

    ogni volta che inserisco una nuova pratica nel campo Pratiche_collegate inserisco il o i numeri di pratiche a cui è collegata del tipo (100 - 130 - 170)

    creo una query che filtri solo le pratiche che contengano nel campo Pratiche_colegate per esempio il n. 100, secondo te può funzionare?

    hai già fatto un errore, perchè adesso vuoi fare un tremendo errore?

    pensa alle scatole cinesi o alla matriosca…

    si ragiona per insiemi, si quelli studiati a scuola.

    un insieme ha un identificativo che in informatica chiamiamo chiave primaria.

    il contenuto di questa scatola (matriosca o insieme) viene identificato da una chiave che per la scatola contenitore si chiama FK (chiave secondaria) e per il contenuto si chiama PK (chiave primaria).

    se hai la necessità che più pratiche siano nello stesso contenitore hai bisogno di un contenitore superiore (due oggetti non possono occupare lo stesso spazio, vale anche in informatica).

    quindi hai bisogno di un collegamento molti a molti.

    la scatola più grande la chiamerei protocolli, il contenuto (tabella) della tabella protocolli la chiamerei pratiche ma affinchè tu possa inserire piu' pratiche dovresti avere da 1 a n campi tante quante le possibili e probabili pratiche da associare al protocollo. per ovviare a questo usi una tabella intermdia con chiave composta idprotocollo e idpratica. in questo modo quando togli o aggiungi una pratica inserisci un record che ha come idprotocollo la chiave primaria della tabella protocolli e id pratica che ha il valore dell'id pratica della tabella pratiche.

    per fare la ricerca di cui parli basta prendere un allegato di una pratica, leggere idpratica dalla tabella intermedia e vedere a quanti protocolli fa capo e di conseguenza a quante pratiche sono associate a quel protocollo.

    la soluzione prospettata da te comporta:

    1. se hai un campo testo (per ipotesi) di 13 caratteri puoi inserire le pratiche (1 - 2  - 3 - 4) poi finisce lo spazio per scrivere.
    2. devi estrapolare il testo e ricavarti i singoli numeri
    3. devi aprire tramite query parametrica da 1 a n parametri id delle singole pratiche

    un lavoraccio inutile e dispendioso di risorse con maggiore rischio di errori.

Devi accedere o registrarti per scrivere nel forum
22 risposte