Campi link (n:m)
Un campo link collega due tabelle con una relazione n:m – ogni riga può fare riferimento a più righe del lato di destinazione, e viceversa. Dal punto di vista tecnico, dietro c’è una tabella intermedia (junction table) con una colonna per ciascun lato.
Alla creazione scegli:
- la tabella di destinazione,
- il nome della colonna sul lato di destinazione (la direzione opposta – un campo link nasce sempre come coppia simmetrica, una colonna su ciascun lato della relazione),
- e la gestione della tabella intermedia:
- Crea nuova – IllusionDB crea da sé la tabella intermedia.
- Usa esistente – scegli una tabella intermedia già presente, con entrambe le sue colonne di chiave esterna.
Il valore di un campo link è sempre una lista di righe collegate. Nella vista tabellare la cella mostra un badge con il conteggio (“3 elementi”, anche quando è null) – un clic apre una finestra con l’elenco completo: per ogni riga il campo di visualizzazione della riga collegata, un’icona a forma di matita per aprire il record collegato e una “×” per rimuovere il collegamento, oltre a una ricerca per aggiungere ulteriori collegamenti. La stessa interfaccia compare identica nel modulo di modifica di un singolo record – griglia e modulo si comportano qui deliberatamente allo stesso modo (vedi anche Record figli, che usa lo stesso principio del badge, ma lì in sola lettura, senza aggiungere/rimuovere).
Un campo link può – proprio come un campo di chiave esterna – puntare anche alla propria tabella, per relazioni n:m tra righe della stessa tabella.
Se invece si tratta di una semplice relazione di chiave esterna 1:n (senza tabella intermedia) e dal lato “genitore” si vogliono mostrare tutte le righe figlie associate, vedi Record figli.
Modificare la connessione in un secondo momento -- deliberatamente non possibile
A differenza dei campi lookup, rollup e record figli, in un campo link la connessione vera e propria (tabella di destinazione, lato opposto, tabella intermedia) non può essere modificata successivamente tramite “Modifica campo” – si tratta di una scelta progettuale deliberata: una riconfigurazione successiva potrebbe corrompere i dati già memorizzati nella tabella intermedia. Se un campo link deve puntare a un’altra tabella di destinazione o tabella intermedia, l’unica via è eliminare e ricreare.
Il nome della colonna di un campo link può invece essere sovrascritto normalmente, come per qualsiasi altro tipo di campo, tramite la stessa finestra “Modifica campo”.