Relazioni, Portali o Riferimenti ??

FileMaker è un database relazionale. Vediamo come...

Moderatore: Moderatori

Rispondi
messadua
Messaggi: 21
Iscritto il: domenica 22 maggio 2005, 2:00

Relazioni, Portali o Riferimenti ??

Messaggio da messadua » mercoledì 28 dicembre 2005, 1:18

Ciao a tutti,

Ancora ricorro, come estrema ratio, a questo Forum, disperato e di fretta, come sempre.
Ecco il quadro: ho un db filemaker pro 8 con tre tabelle. Lavoro in ospedale, ed il database serve per scopi di ricerca. Le tre tabelle sono:
1) Demografica : tutti i dati generici sui pazienti
2) Eco standard: i risultati dell'esame basato su tecniche standard
3) Eco TDI: risultati dell'esame che impiega nuove tecniche in studio.

ad ogni paziente e' dato un ID che viene usato come chiave primaria per la relazione fra le tre tabelle del db.
Oltre l'ID, vi sono una serie di dati, quali Nome, numero di cartella, data e numero del DVD su cui viene registrato l'esame. E' comodo avere tali dati in autocompilazione nelle ultime due tabelle (Eco Standard ed Eco TDI).

Partendo dal presupposto che ogni paziente avrebbe avuto un esame standard ed un esame di ricerca (creando quindi un nuovo record in entrambe le tabelle) ho creato un portale che, basandosi sull'ID del Paziente, riportava tutti i dati comuni dalla Tabella Eco standard nella tabella Eco TDI. Il sistema funge perfettamente.

Purtroppo pero' ci stiamo rendendo conto che le due tabelle non sono necessariamente legate :ossia posso creare un nuovo record per uno stesso paziente (Eco Nb. 2, 3...) nella tabella Eco TDI, ma non ripetere l'esame standard, avrei cioe' un solo record nella Tabella Eco Standard e due o piu' record nella tabella Eco TDI, per uno stesso paziente. Chiaramente, mentre il numero di cartella clinica non cambia, cambiano pero' Data dell'esame e numero del DVD su cui l'esame e' registrato, fra i diversi record della tabella Eco TDI.

L'effetto collaterale, forse inevitabile dell'utilizzo di un portale e' che ogni qual volta cambio i dati relativi a Data e num. DVD nel nuovo record creato in Eco TDI, questi vengono cambiati istantaneamente anche in Eco Standard, cosa ovviamente indesiderabile, in quanto il paziente in quella data non ha ripetuto anche un eco di base.

La prima domanda e' : e' possibile risolvere il problema continuando ad usare un portale ? e se si, come ?

In alternativa avevo pensato di usare i riferimenti (campo Lookup in inglese) in quanto il nuovo record in Eco TDI sarebbe autocompilato la prima volta ed io potrei poi cambiare i campi quali Data e num DVD in esso, senza cambiare automaticamente gli stessi campi in Eco Standard.

Ho provato a definire un riferimento fra Eco TDI ed Eco standard relativamente ai campi Data e Num DVD, ma non succede nulla, ossia, i dati non vengono copiati dalla tabella Eco standard a quella Eco TDI nonostante l'ID sia il medesimo.
Non me ne spiego il motivo, evidentemente sbaglio qualcosa, ma non so esattamente cosa.
Qulacuno potrebbe mostrarmi la modalita' esatta di creazione di un riferimento ?

Grazie sin d'ora per la pazienza e l'aiuto

stregatto
Messaggi: 9700
Iscritto il: lunedì 1 dicembre 2003, 1:00
Località: Roma
Contatta:

Messaggio da stregatto » mercoledì 28 dicembre 2005, 14:00

dunque, se ho capito bene:

a ciascun paziente corrisponde 1 eco standard e 1 o più TDI

in questo caso ti serve un ID paziente (che hai già) ed 1 ID eco standard, con un altro campo nella tabella TDI (ad es. id standard) che associerai a eco standard::ID.

a questo punto avrai tre relazioni due "verticali" (da demografica a ecosstandard e da demografica a tdi) ed una "orizzontale" da ecostandard a tdi che ti permetterà di associare più tdi ad un singolo eco standard.

questa, la teoria; per essere più specifico dovrei sapere la struttura spicciola dei campi e delle relazioni.

.g.

messadua
Messaggi: 21
Iscritto il: domenica 22 maggio 2005, 2:00

Messaggio da messadua » mercoledì 28 dicembre 2005, 22:10

Innanzitutto Grazie per la risposta.

In effetti avevo pensato anch'io ad una soluzione del genere, ed all'inizio avevo un ID che legava la demografica ad Eco standard ed Eco TDI, ed un Nb (numero) che legava Eco standard ad Eco TDI.
Nb. consiste nel numero dell'esame (per uno stesso paziente esame Nb 1, 2, 3....) avevo quindi creato un portale in ECO TDI per i campi autocompilati da Eco standard. Il tutto funzionava molto bene se per ogni Eco standard vi era anche un Eco TDI (stesso ID, stesso Nb.) ma purtroppo stando cosi' le relazioni, ogni volta che volevo immettere un nuovo ECO TDI ( Nb 2, ad esempio) lui non solo non mi autocompilava i campi in comune con Eco Standard (in quanto i Nb. non matchavano) ma non mi permetteva di farlo io stesso (di fatto non potevo editare i campi).
D'altra parte,se toglievo la relazione basata su Nb. e mantenevo solo quella basata su ID, potevo editare i campi, ma qualsiasi modifica si ripercuoteva anche sui dati di partenza (in Eco standard)...spero di essere stato chiaro, di fatto con due relazioni il sistema a portale non va, ma non va neanche con una sola relazione...
Ieri sera comunque, sono riuscito a risolvere il problema dei riferimenti, ed adesso funziona tutto a meraviglia: i campi vengono autocompilati soltanto la prima volta, dopo di che se voglio rieditarli posso farlo liberamente, senza temere alcuna modifica nella tabella Master (Eco Standard).
La soluzione, anche se efficace, mi sembra comunque poco elegante e sarei curioso di sapere se potrei risolvere anche con relazioni e portale...se ho capito bene il tuo consiglio e' quello di definire un altro ID (non piu' basato sul Numero dell'esame) che leghi fra loro Eco standard ed Eco TDI, ma facendo cosi', ogni qualvolta cambi ad esempio il Numero di serie del DVD nel quale e' registrato il secondo esame (Eco TDI), non incorrerei nello stesso problema su riportato ?

Grazie sempre per l'attenzione el'aiuto, auguro un felice anno a tutti !

Rispondi