Relazione su 5 tabelle

FileMaker è un database relazionale. Vediamo come...

Moderatore: Moderatori

Rispondi
AntLan
Messaggi: 3
Iscritto il: venerdì 15 luglio 2016, 15:43

Relazione su 5 tabelle

Messaggio da AntLan » venerdì 15 luglio 2016, 18:50

Buon giorno ragazzi, sono nuovo in filemaker e mi sto destreggiando in un piccolo (per ora) progettino per la mia società, cercando di imparare man mano che avanzo con lo sviluppo.

Il problema che non riesco a risolvere da una settima è simile al seguente.
Ho 5 tabelle così costituite:
  • Ricette
    id_ricetta
    nome_ricetta (es.carbonara)
  • Componenti
    id_componente
    nome_componente (es.uova)
  • Elementi_nutrizionali
    id_elemento_nutrizionale
    nome_elemento_nutrizionale (es.proteine)
Il tutto viene completato con 2 tabelle di join:
  • join_ricette_e_componenti
    id_ricetta (es.carbonara)
    id_componente (es.uova)
    quantita_componente (es.10%)
  • join_componenti_e_elementi_nutrizionali
    id_componente (es.uova)
    id_elemento_nutrizionale (es.proteine)
    quantita_elemento_nutrizionale (es.50%)
Ovviamente ho relazionato:
  • Ricette.id_ricetta=join_ricette_e_componenti.id_ricetta
    join_ricette_e_componenti.id_componente=Componenti.id_componente
    Componenti.id_componente=join_componenti_e_elementi_nutrizionali.id_componente
    join_componenti_e_elementi_nutrizionali.id_elemento_nutrizionale=Elementi_nutrizionali.id_elemento_nutrizionale
Nel formato per la definizione di un nuovo record di Componente ho 1 portale che tramite menù a tendina e una casella di modifica mi permette di inserire l'analisi nutrizionale di un componente.

Mentre nel formato per la definizione di un nuovo record di Ricetta ho 2 portali:
  • 1. Nel primo portale definisco l'insieme dei componenti della ricetta (portale funzionante):
    • - Pasta 50%
      - Uova 20%
      - Pancetta 30%
  • 2. Nel secondo portale vorrei visualizzare l'elenco dei nutrienti (portale non funzionante):
    • - Proteine 20%
      - Grassi 10%
      - Vitamine etc.....
Il problema del secondo portale è che la casella di modifica che mostra i valori dei nutrienti è un campo calcolato (join_componenti_e_elementi_nutrizionali::quantita_elemento_nutrizionale * join_ricette_e_componenti::quantita_componente) che non esiste in nessuna tabella.
Temporaneamente avrei risolto con la funzione EseguiSQL in un nuovo campo di Ricetta, tuttavia in questo modo non ho la possibilità di visualizzare la query su di un portale.

Vi prego ragazzi, ho bisogno del vostro aiuto. Vi ringrazio in anticipo.

AntLan
Messaggi: 3
Iscritto il: venerdì 15 luglio 2016, 15:43

Re: Relazione su 5 tabelle

Messaggio da AntLan » lunedì 18 luglio 2016, 18:38

Da quanto ho capito il portale può rappresentare solamente i valori di una tabella.
Quindi il calcolo deve essere fatto in una tabella apposita tipo: Ricette | Elementi nutrizionali.
Purtroppo non so come popolare automaticamente questa tabella.

Qualcuno di voi ha già riscontrato un problema simile?

Avatar utente
PIG-NAH
Messaggi: 2564
Iscritto il: martedì 7 agosto 2007, 2:00
Località: BIG BANG

Re: Relazione su 5 tabelle

Messaggio da PIG-NAH » mercoledì 20 luglio 2016, 6:52

La tabella di base è Componenti ( uova, pane, spaghetti...) perchè funge da magazzino.
Quando fai una ricetta prelevi i valori da componenti in quanto petresti anche creare una tua ricetta.
Gli elementi nutrizionali sono campi della tabella Componenti, esempio: campo_proteine contiene 20%,
campo_grassi contiene 7%, campo_carboidrati 3% eccetera.
FM8 ADV XP SP3

AntLan
Messaggi: 3
Iscritto il: venerdì 15 luglio 2016, 15:43

Re: Relazione su 5 tabelle

Messaggio da AntLan » mercoledì 20 luglio 2016, 9:27

Ogni elemento nutrizionale ha tutta una serie di informazioni: unità di misura, nome_EN, Codice Europeo etc...
Vitamine, oligoelementi, amminoacidi...
PIG-NAH c'è da considerare che gli elementi nutrizionali che intendo utilizzare sono poco meno di 200. ;)

Sto facendo delle prove:
Ho creato un nuovo campo nella tabella Elementi_nutrizionali: elemento_nutrizionale_temp_su_formula, che è un campo calcolato (quantita_componente * quantità_elemento_nutrizionale/100)

Ho puntato il portale sulla tabella Elementi_nutrizionali, il menu a discesa su id_elemento_nutrizionale e una casella di modifica sul nuovo campo appena creato.

Putroppo non funziona, mi fa il calcolo solamente sul primo record che trova: in pratica per ogni ricetta mi mostra sempre gli elementi nutrizionali della prima ricetta.

Avatar utente
PIG-NAH
Messaggi: 2564
Iscritto il: martedì 7 agosto 2007, 2:00
Località: BIG BANG

Re: Relazione su 5 tabelle

Messaggio da PIG-NAH » giovedì 21 luglio 2016, 7:19

Fai come credi meglio. Usa pure le tabelle di join o di appoggio ma prima studiati bene le relazioni.
FM8 ADV XP SP3

Rispondi