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:
- se hai un campo testo (per ipotesi) di 13 caratteri puoi inserire le pratiche (1 - 2 - 3 - 4) poi finisce lo spazio per scrivere.
- devi estrapolare il testo e ricavarti i singoli numeri
- 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.