Relazioni tra Entità
Nella Guida precedente abbiamo visto come creare una Vista che elenca un tipo di Entità (es. gli Attrezzi della app Vicinato) con i loro Campi. Vediamo ora come mostrate nella stessa Vista informazioni prese dai Campi di altre Entità collegate alle Entità principali della Vista da relazioni.
Una Entità A è in relazione con una Entità B se l'Entità A ha un Campo Riferimento che richiama l'Entità B. Rappresentiamo questa relazione come A → B perché, conoscendo l'Entità A, possiamo arrivare all'Entità B leggendo il contenuto del Campo di A.
Aggiungere relazioni nella Vista (sezione Relazioni)
Utilizzeremo la relazione A→B per aggiungere ad una Vista che elenca le Entità di tipo A anche le informazioni contenute nei Campi delle Entità di tipo B. Per utilizzare una relazione in una Vista occorre aggiungere nella sezione Relazioni della Vista il Campo di A che regge la relazione con B. Ad esempio, nella Vista "Magazzino" della app "Vicinato" che abbiamo creato nella Guida precedente e che elenca gli Attrezzi, possiamo utilizzare la relazione Attrezzo → Autore (retta dal Campo predefinito "Autore" dell'Attrezzo) per aggiungere informazioni sul Proprietario (=Autore) dell'Attrezzo. Ecco come:
| aggiungi la relazione | Nella sezione Relazioni clicca Aggiungi. Cerca "autore" e seleziona Contenuto - Utente - Nome utente dell'autore del contenuto.
|
| configura la relazione | Nella finestra di configurazione del Campo, in titolo amministrativo puoi rinominare la relazione come "Proprietario", per ricordarti che l'Utente così selezionato è il Proprietario dell'Attrezzo. |
Usare le relazioni nella Vista
Aggiunta nella sezione Relazioni il Campo dell'Entità A che regge la relazione A→B, per usare in un'altra sezione della Vista un Campo dell'Entità B basta aggiungere quel Campo nella sezione, specificando quella relazione nella finestra di configurazione del Campo. Ad esempio, per aggiungere nella sezione Campi della Vista "Magazzino" il nome del Proprietario a fianco di ogni Attrezzo:
| aggiungi il nome del proprietario dell'Attrezzo | Nella sezione Campi clicca Aggiungi. Seleziona il Campo Utente - Nome - Il nome dell'utente o dell'autore e come Relazione seleziona "Proprietario". Come Etichetta digita "Proprietario" |
Relazioni concatenate
Nella sezione Relazioni è possibile aggiungere più relazioni, ognuna corrispondente ad un Campo riferimento dell'Entità principale della Vista. E' anche possibile costruire relazioni concatenate tra loro, cioè relazioni che consentono di passare da una Entità A all'Entità B e, da questa, ad una Entità C e così via.
Ad esempio, nella app "Vicinato" una Consegna ha un Campo "Richiesta" che la collega ad una Richiesta (Consegna → Richiesta). A sua volta, la Richiesta ha un Campo "Attrezzo" che rimanda all'Attrezzo richiesto (Richiesta → Attrezzo). Quindi, percorrendo la catena Prestito → Richiesta → Attrezzo è possibile conoscere l'Attrezzo consegnato, senza necessità di replicare l'informazione nella Consegna.
Se stiamo costruendo una Vista che elenca le Consegne e vogliamo mostrare per ciascuno di essi la Richiesta corrispondente e l'Attrezzo prestato, nella sezione Relazioni aggiungeremo prima la relazione Consegna → Richiesta e poi la relazione Richiesta → Attrezzo, specificando che quest'ultima è basata sulla relazione che la precede: l'ordine in cui sono elencate le relazioni nella sezione Relazioni è quindi importante.
Vediamo come si fa:
Relazioni inverse
Data una relazione A→ B, è anche possibile utilizzarla in senso inverso per risalire da B ad A. Ad esempio, se l'Entità "Disco" ha un Campo riferimento che identifica l'Entità "Cantante" (Disco → Cantante), possiamo usare questa relazione in senso inverso (cioè come se fosse Cantante → Disco) per identificare tutti i Dischi di un Cantante. Per usare la relazione in senso inverso, nella sezione Relazioni non aggiungiamo il Campo:
Contenuto - Contenuto referenziato da field_cantante_disco
ma aggiungiamo il Campo:
Contenuto - Contenuto che usa field_cantante_disco


