FileMaker Pro

Comprensione e creazione di relazioni "molti a molti" in FileMaker Pro

Che cosa devo sapere per lavorare con le relazioni "molti a molti" in FileMaker Pro?

Un database relazionale è composto da dati e informazioni organizzati in diverse tabelle. Una tabella definisce un singolo gruppo di informazioni specifiche, come la tabella dei clienti di un'azienda o la tabella dei prodotti venduti dall'azienda. Ogni record all'interno della tabella deve comprendere un "campo chiave". Un campo chiave è un campo o una combinazione di campi che identificano in modo univoco un record (riga) in una tabella. Un campo chiave può essere di tipo "chiave primaria" o "chiave esterna". Una "chiave primaria" è un campo chiave che si trova nella stessa tabella del record che identifica. Una "chiave esterna" è un campo chiave che identifica un record in un'altra tabella. Comprendere la differenza tra una chiave primaria e una chiave esterna è utile per gestire le relazioni "molti a molti" in FileMaker Pro.

La progettazione di database relazionali supporta diversi tipi di relazioni tra tabelle. Tali relazioni servono ad evitare l'inserimento di dati incoerenti e a garantire l'integrità referenziale. FileMaker Pro supporta i seguenti tipi di relazioni:

Relazioni "uno a molti"

Le relazioni più comunemente utilizzate nella creazione di database relazionali. Una riga di una tabella di un database può essere associata a una o (verosimilmente) a più righe di un'altra tabella. Un esempio di relazione "uno a molti" è un ordine con molte voci al suo interno. Inoltre, poiché le relazioni funzionano in entrambi i sensi, non è raro sentir parlare anche di relazioni molti a uno.

Relazioni uno a uno

Una riga di una tabella è associata ad una e una sola riga di un'altra tabella. Un esempio di relazione "uno a uno" è il seguente: una persona può avere un solo codice fiscale e ciascun codice fiscale può essere assegnato a una sola persona.
Nella maggior parte dei casi non è necessaria una relazione "uno a uno" poiché i contenuti delle due tabelle possono essere combinati in un'unica tabella.

Relazioni "molti a molti"

Una o più righe di una tabella sono associate a una o più righe di un'altra tabella. Un esempio di relazione "molti a molti" è il caso di una tabella di clienti che possono acquistare più prodotti e lo stesso prodotto può essere acquistato da più clienti.

 

Nella progettazione di database relazionali, le relazioni "molti a molti" non sono consentite. Si consideri l'esempio della gestione delle fatture. Se ci fossero "più" fatture con lo stesso numero e uno dei tanti clienti chiamasse per un chiarimento riguardo a una di queste, come fareste a capire a quale starebbe facendo riferimento? La risposta è che sarebbe impossibile. Ciascuna fattura deve avere un "ID" univoco

Per aggirare il problema di avere una relazione "molti a molti" è necessario suddividerla in due relazioni "uno a molti". Questo è possibile utilizzando una terza tabella, comunemente chiamata "tabella associativa". Ciascun record della "tabella associativa" contiene i campi chiave esterna delle due tabelle che unisce. Non è necessaria alcuna operazione particolare sui campi chiave esterna della tabella associativa, poiché vengono popolati con i dati delle altre due tabelle mano a mano che i record vengono creati. Non è insolito che una tabella associativa contenga numerosi record, poiché questi vengono creati nella tabella associativa mano a mano che vengono creati dei record nelle due tabelle che unisce.

Come impostare una tabella associativa in FileMaker Pro:

Per il nostro esempio tratteremo di un tipico scenario molti a molti: Studenti e Corsi. Avremo una tabella Studenti, contenente un record per ogni studente, e una tabella Corsi, contenente un record per ogni corso disponibile. Il campo chiave primaria IDStudente identifica in modo univoco uno studente della tabella degli studenti. Analogamente, il campo chiave primaria IDCorso identifica in modo univoco un corso della tabella dei corsi.
 
 Uno studente può seguire più corsi e un corso può avere più studenti. Correlare queste due tabelle sarebbe difficile senza ricorrere a una tabella associativa. La tabella associativa conterrà le chiavi primarie dalla tabella degli studenti e di quella dei corsi. Alla tabella associativa può essere attribuito il nome che si desidera. Per questo esempio, chiameremo la tabella associativa "Iscrizioni."

  1. Creare una nuova tabella in FileMaker Pro e chiamarla "Iscrizioni"
  2. Nella tabella "Iscrizioni", creare un campo chiave primaria chiamato "IDIscrizioni." Questa operazione non è necessaria per il corretto funzionamento della tabella associativa ma, nei database relazionali, è buona norma che ogni tabella abbia una chiave primaria.
  3. Nella tabella "Iscrizioni" creare almeno un campo "IDStudente" e un campo "IDCorso". Poiché questi campi verranno popolati mano a mano che verranno creati record nelle tabelle "Studenti" o "Corsi", non è necessario impostare opzioni di campi ad inserimento automatico.
  4. Se necessario, è possibile aggiungere altri campi alla tabella "Iscrizioni". Alcuni esempi di altri campi che potrebbe essere opportuno inserire nella tabella "Iscrizioni" sono un campo "Data", per tenere traccia del giorno in cui una persona ha iniziato un corso, o un campo "Costo" per tenere traccia della somma pagata per partecipare a un corso. Le tabelle associative solitamente contengono campi che potrebbe non avere senso inserire in nessuna delle altre tabelle.
  5. Correlare le tabelle in base alle chiavi primarie ed esterne.

Se uno studente si è iscritto a tre corsi, ha un record nella tabella Studenti e tre record nella tabella "Iscrizioni", ovvero uno per ogni corso a cui si è iscritto.
 
 Una conseguenza dell'uso di una tabella associativa è la possibilità di accedere ai campi e ai dati contenuti nelle tabelle senza dover creare una relazione distinta. Nel nostro esempio, se necessario, è molto facile visualizzare le informazioni della tabella Studenti nella tabella Corsi e viceversa.


[an error occurred while processing this directive]

Seminari Web FileMaker

Collegati con la conoscenza

Visualizza gli argomenti

Web Seminars

Risparmiate con
Workgroup Bundle

5 FileMaker Pro + 1 FileMaker Server

FileMaker Workgroup Bundle

IN OMAGGIO la serie di Corsi di formazione FileMaker

Per l'acquisto di FileMaker Pro 12 o
FileMaker Pro 12 Advanced

FTS

FileMaker Technical Network

Un mondo di risorse GRATUITE
a portata di mano

Technet

Iscrivetevi oggi e otterrete
gratuitamente il FileMaker
Traning Series kit