Relazioni e non tra tabelle
Moderatore: Moderatori
- PaoloMar189
- Messaggi: 77
- Iscritto il: sabato 4 ottobre 2014, 18:31
Re: Relazioni e non tra tabelle
Salve. Penso che non ci siano più risposte, perché a tale affermazione
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.
è impossibile rispondere. Le relazioni vanno fatte per omogeneità dei dati. Faccio un esempio:Dovrei creare 3 tabelle ma non so da dove derivino ne come collegarle insieme.
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
Moderatore FMPro.it
Sviluppatore OmniaGest 5 e FileMaker 14-15
Omnia Studio
-----------------------------------------
http://www.omniagest.it
-
- Messaggi: 31
- Iscritto il: martedì 9 agosto 2016, 22:51
Re: Relazioni e non tra tabelle
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.
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.
-
- 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
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?
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?
-
- Messaggi: 31
- Iscritto il: martedì 9 agosto 2016, 22:51
Re: Relazioni e non tra tabelle
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.
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.
-
- 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
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?
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?
-
- Messaggi: 31
- Iscritto il: martedì 9 agosto 2016, 22:51
Re: Relazioni e non tra tabelle
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.
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.
-
- 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
Questo è il file di prova ma non trovo nessuna istruzione di script per creare nuovo record su un'altra tabella
Saluti
Saluti
-
- 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
Non mi permette di allegare con estensione .fmp12 come faccio?