Relazioni e non tra tabelle

FileMaker è un database relazionale. Vediamo come...

Moderatore: Moderatori

Avatar utente
PaoloMar189
Messaggi: 77
Iscritto il: sabato 4 ottobre 2014, 18:31

Re: Relazioni e non tra tabelle

Messaggio da PaoloMar189 » martedì 20 giugno 2017, 21:55

Salve. Penso che non ci siano più risposte, perché a tale affermazione
Dovrei creare 3 tabelle ma non so da dove derivino ne come collegarle insieme.
è impossibile rispondere. Le relazioni vanno fatte per omogeneità dei dati. Faccio un esempio:

Un cliente si lega alle relative fatture tramite un codice (un codice cliente, un codice fiscale), l'importante è che una delle tabelle sia MASTER e quindi il suo codice sia univoco e l'altra sia SLAVE dove la chiave non deve essere necessariamente univoca. E' il cosidetto rapporto UNO (il master) a MOLTI (gli slaves)

Detto ciò, lascio a lei, come congeniare le relazioni utili a far funzionare ciò che desidera ottenere.
Paolo Marinelli
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15

Omnia Studio

-----------------------------------------
http://www.omniagest.it

Pakito
Messaggi: 31
Iscritto il: martedì 9 agosto 2016, 22:51

Re: Relazioni e non tra tabelle

Messaggio da Pakito » martedì 20 giugno 2017, 23:33

tabella: CLIENTI
campi: ID

tabella: CAMPAGNE
campi: ID

tabella: CAMPAGNE_CLIENTI
campi: ID, ID_CAMPAGNA, ID_CLIENTE, ESEGUITA

Servono due TO (occorrenze) della tabella CAMPAGNE_CLIENTI:
CAMPAGNE_CLIENTI_CLIENTI
CAMPAGNE_CLIENTI_CAMPAGNE

Vanno impostate le seguenti Relazioni:
CLIENTI con CAMPAGNE_CLIENTI_CLIENTI tramite ID = ID_CLIENTE
CAMPAGNE con CAMPAGNE_CLIENTI_CAMPAGNE tramite ID = ID_CAMPAGNA

Tramite Script va creata una procedura che assegna le Campagne ai Clienti. Qualcosa tipo:
Nel formato Cliente, premo sul tasto SCEGLI CAMPAGNE -> Apro un formato con l'elenco delle Campagne -> Premo sul tasto ASSEGNA CAMPAGNA -> Apro la Tabella CAMPAGNE_CLIENTI -> Creo un nuovo record con ID_CAMPAGNA e ID_CLIENTE -> Torno al formato Cliente.
(un altro approccio potrebbe essere quello di assegnare le campagne automaticamente a tutti i clienti)

Quindi, nella tabella CAMPAGNE_CLIENTI verrà creato un nuovo record per ogni assegnazione. In altre parole, se ho 2 Campagne e le assegno a 100 Clienti, nella tabella CAMPAGNE_CLIENTI avrò 200 record.

A questo punto è sufficiente inserire nel formato Cliente un portale che prende i dati da CAMPAGNE_CLIENTI_CLIENTI per vedere la lista delle Campagne assegnate al Cliente ed eventualmente spuntare quelle ESEGUITE.
Volendo, si può inserire nel formato Campagna un portale che prende i dati da CAMPAGNE_CLIENTI_CAMPAGNE per vedere la lista dei Clienti che vi hanno preso parte.

Zancalex
Messaggi: 11
Iscritto il: mercoledì 1 marzo 2017, 12:56
Versione FileMaker: FM pro 15
Sistema operativo: Mac OS

Re: Relazioni e non tra tabelle

Messaggio da Zancalex » giovedì 22 giugno 2017, 14:16

Grazie molto chiaro, ho provato ma non mi funziona, forse sbaglio qualche cosa.
Io ho:
tabella: CLIENTI
campi: ID

tabella: CAMPAGNE
campi: ID, ID_CLIENTI (relazione tabelle CLIENTI con CAMPAGNE tramite ID = ID_CLIENTI)

tabella RICERCACONTATTI
campi: ID (relazione tabelle CAMPAGNE con RICERCACONTATTI tramite ID x ID)

tabella CONTATTIASSOCIATI
campi: ID (relazione tabelle CAMPAGNE con CONTATTIASSOCIATI tramite ID_CLIENTI = ID)

Le tabelle RICERCACONTATTI e CONTATTIASSOCIATI derivano dalla tabella CLIENTI

Cosi posso creare una campagna e assegnarla ai clienti (ho delle scelte per selezionare i clienti a gruppi) e in CLIENTI ho un portale che prende i dati da CAMPAGNE e vedo la campagna ad ogni cliente a cui la ho associata.
Fino a qui funziona tutto ma non posso mettere una spunta alla campagna di un solo cliente.

leggendo la tua risposta ho creato un tabella nuova che ho chiamato FLAG con campi: ID, ID_CLIENTE, ID_CAMPAGNA, FLAG (dovrebbe equivalere alla tua tabella CAMPAGNE_CLIENTI) e la ho sdoppiata creando FLAG_CLIENTI e FLAG_CAMPAGNE

Con le relazioni:
CAMPAGNE con FLAG_CLIENTI tramite ID_CLIENTI = ID_CLIENTI
CAMPAGNE con FLAG_CAMPAGNE tramite ID = ID_CAMPAGNE

Ma cosi facendo se aggiungo campagne non creo record in FLAG e quindi sul portale che ho creato in CLIENTI dove dovrei vedere i record di FLAG_CLIENTI non vedo niente.
Dove sbaglio?

Pakito
Messaggi: 31
Iscritto il: martedì 9 agosto 2016, 22:51

Re: Relazioni e non tra tabelle

Messaggio da Pakito » giovedì 22 giugno 2017, 15:01

La tabella CLIENTI deve contenere solo i dati dei Clienti: Nome, Indirizzo etc..
La tabella CAMPAGNE deve contenere solo i dati delle Campagne: Titolo, Descrizione etc..

La tabella CAMPAGNE non deve contenere l'ID_CLIENTE. Ma allora ti chiederai: come lego i CLIENTI alle CAMPAGNE?
Semplice, di serve un "posto" in cui farli incontrare ossia una terza tabella chiamata CAMPAGNE_CLIENTI che conterrà tutte le assegnazioni, ad es:
Mario Rossi - Campagna1
Mario Rossi - Campagna2
Mario Rossi - Campagna3
Ivan Verdi - Campagna1
Ivan Verdi - Campagna4

Quando legherai la tabella CLIENTI alla TO CAMPAGNE_CLIENTI_CLIENTI tramite ID=ID_CLIENTE, nel formato del cliente potrai visualizzare tutte le campagne ad esso assegnate e quindi spuntare quelle ESEGUITE.

Per comprendere l'approccio corretto, ti consiglierei di creare un file di prova ed eseguire alla lettera le istruzioni contenute nel mio post precedente.

Zancalex
Messaggi: 11
Iscritto il: mercoledì 1 marzo 2017, 12:56
Versione FileMaker: FM pro 15
Sistema operativo: Mac OS

Re: Relazioni e non tra tabelle

Messaggio da Zancalex » venerdì 23 giugno 2017, 14:00

Chiedo scusa ma ho fatto diverse prove con file di prova ma:
I Clienti li inserisco io e creo gli ID
Le Campagne le inserisco ioe creo gli ID
CAMPAGNE_CLIENTI gli ID si dovrebbero creare da soli moltiplicando campagne X Clienti in automatico. Facendo tutti i collegamenti ho ID_CLIENTI E ID_CAMPAGNE corretti ma chi mi inserisce ID?

Pakito
Messaggi: 31
Iscritto il: martedì 9 agosto 2016, 22:51

Re: Relazioni e non tra tabelle

Messaggio da Pakito » venerdì 23 giugno 2017, 16:39

Nella tabella CAMPAGNE_CLIENTI l'ID è un numero di serie proposto che viene compilato automaticamente.
I record in questa tabella vanno creati con una procedura definita tramite script e non manualmente da un portale.

Posta il tuo file di prova.

Zancalex
Messaggi: 11
Iscritto il: mercoledì 1 marzo 2017, 12:56
Versione FileMaker: FM pro 15
Sistema operativo: Mac OS

Re: Relazioni e non tra tabelle

Messaggio da Zancalex » lunedì 26 giugno 2017, 11:03

Questo è il file di prova ma non trovo nessuna istruzione di script per creare nuovo record su un'altra tabella
Saluti

Zancalex
Messaggi: 11
Iscritto il: mercoledì 1 marzo 2017, 12:56
Versione FileMaker: FM pro 15
Sistema operativo: Mac OS

Re: Relazioni e non tra tabelle

Messaggio da Zancalex » lunedì 26 giugno 2017, 11:05

Non mi permette di allegare con estensione .fmp12 come faccio?

Rispondi