Pagina 1 di 2

Primi passi

Inviato: martedì 29 gennaio 2013, 12:19
da MIMM0TR0N
Ciao,

ho tutti i prerequisiti necessari per affrontare (teoricamente) l'argomento basi di dati, ma mi trovo impantanato per quel che riguarda la pratica. Ho scelto di utilizzare FileMaker Pro 12 Advanced (Mac) per realizzare un DB per una galleria d'arte. Vorrei creare quindi una tabella Opera ed una Mostra nella quale inserire i dati per ogni mostra in cui e' stata esposta ogni singola opera.
La relazione sara' uno a molti 1_opera -> N_mostra

Come posso creare un'istanza per la tabella Mostra ogni qual volta creo un nuovo record per Opera? Viceversa quando la medesima opera va ad una mostra differente?
Le relazioni logiche le ho create mettendo in relazione id_opera (chiave esterna) nella tabella Mostra con id_opera (chiave primaria) nella tabella Opera.

Qualcuno puo' aiutarmi a capire come fare? Grazie.

Re: Primi passi

Inviato: martedì 29 gennaio 2013, 12:35
da stregatto
ti manca un pezzo:

a) tabella opere
b) tabella mostre
c) tabella di join opere_mostre correlata per id_mostra con mostre e id_opera con opere.

.g.

Re: Primi passi

Inviato: martedì 29 gennaio 2013, 13:48
da MIMM0TR0N
Ok, fatto. Ora per vedere le mostre a cui una singola opera ha partecipato, che soluzione mi suggerite? Un nuovo layout con portale mi mostra tutti i risultati, ovviamente :-)
Grazie

Re: Primi passi

Inviato: martedì 29 gennaio 2013, 13:50
da stregatto
un portale su mostre ti fa vedere le opere della mostra, un portale su opere ti fa vedere le mostre cui ha partecipato l'opera.
per stampare ti conviene un formato sulla tabella di join cui andare mediante vai al record correlato.

.g.

Re: Primi passi

Inviato: martedì 29 gennaio 2013, 14:10
da MIMM0TR0N
Avevo intuito questa soluzione, ma il portale resta vuoto... Quale potrebbe essere il mio errore?

Re: Primi passi

Inviato: martedì 29 gennaio 2013, 14:24
da MIMM0TR0N
Ok, problema risolto, forse :shock:
Più tardi posterò' la "mia" soluzione, magari potrà' essere d'aiuto a qualcun altro...

Re: Primi passi

Inviato: martedì 29 gennaio 2013, 15:42
da MIMM0TR0N
Innanzi tutto prodotto cartesiano delle due relazioni con la tabella join.
Poi filtro delle tabelle nel portale dove id_opera nella tabella Opera = id_opera nella tabella Mostra
Mostra::id_opera = Opera::id_opera

Re: Primi passi

Inviato: martedì 29 gennaio 2013, 17:05
da stregatto
si, ma così non puoi creare voci direttamente dal portale. secondo me ti basta una relazione

Mostra::id_mostra= Join::id_mostra

fra mostra e join e

opere::id:opera= Join::id_opera

fra join e opere.

.g.

Re: Primi passi

Inviato: martedì 29 gennaio 2013, 21:15
da MIMM0TR0N
Ora non funziona piu'...

In Gestisci->Database->Relazioni imposto prodotto cartesiano tra le tre tabelle id_opera x id_opera [Opera con tabella Join(Join e' solo il nome proprio, vero?)] Lo stesso faccio con le altre due tabelle, id_mostra x id_mostra.
Poi nel nuovo layout apro un portale ed imposto un filtro Mostra::id_mostra = Join::id_mostra

Dove sbaglio?

Re: Primi passi

Inviato: martedì 29 gennaio 2013, 22:08
da stregatto
mi sfugge perché tu debba usare una cartesiana più filtro, quando basta una semplice relazione chiave primaria/chiave esterna, senza filtri.

.g.