Newsgroup: it.comp.software.database
Titolo: Gestire master e detail ma con n details diversi

salve
mi potresti dare dei consigli su come gestire una schema del tipo
master detagli ma con
tanti details differenti ?
qualcosa tipo
Scheda -> Dati Strumento (strumento 1)
Scheda -> Dati Strumento (strumento 2)
Scheda -> Dati Strumento (strumento 3)
i vari strumenti hanno campi diversi.....

yappo said the following on 03/09/10 17:24:

Se ho capito bene.
Crei una tabella strumenti con:
idstrumento int autoincremente
nomestrumento
( e altri campi a scelta)
La scheda "detail" avra' questa struttura:
idschedadetail int autoincrement
idscheda int (riferimento alla tabella Scheda 'master')
idstrumento int (riferimento alla tabella strumenti)
dati vari
La scheda "detail avra' una
UNIQUE KEY `schedastrumento` (`idscheda`,`idstrumento`)
Ovvero sara' univoca la coppia (`idscheda`,`idstrumento`)
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
Duct tape is like the Force. It has a light side, and a dark side,
and it holds the universe together.
     --Carl Zwanzig


il problema di questo però però questo .... non posso avere un
controllo rigido della struttura delle schede del singolo strumento
nel mio mondo (come la volevo io) io immaginavo per ogni singolo
strumento una tabella differente questo perchè così ogni strumento
poteva evolvere senza interferire con la vita degli altri
strumenti ....

 strumenti ....
Se uno strumento ha delle "informazioni", puoi tabellare le informazioni 
(acquisto, ore di lavoro, scadenza, yadda, yadda) e nella tabella "detail" fai 
una cosa tipo
idschedadetail int autoincrement
idscheda int (riferimento alla tabella Scheda 'master')
idstrumento int (riferimento alla tabella strumenti)
idinformazione int (riferimento alla tabella informazioni)
valore dell'informazione
La scheda "detail avra' una
UNIQUE KEY `schedastrumentoinfo` (`idscheda`,`idstrumento`,`idinformazione`)
In questo modo tu "virtualizzi" le schede e rendi dinamico il numero di 
informazioni senza dover mettere mano alla struttura delle tabelle.
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
I was gratified to be able to answer promptly, and I did. I said I didn't know.
     --Mark Twain

 master detagli ma con tanti details differenti ?
Ciao. Cerca "EAV" su questo NG, ne abbiamo parlato diffusamente
(ormai e` una FAQ); notare soprattutto come i rdbms sono inadatti
a questo, e come l'integrita` dei dati sara` assai problematica.
bye

 a questo, e come l'integrita` dei dati sara` assai problematica.
"assai problematica" non direi, se scrivi del codice come si deve.
Ho scritto applicazioni (PHP+MySQL) che da anni usano quel sistema e non hanno 
problemi di integrita', non piu' di quanti cene siano in un normale master-detail.
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
All of the animals except man know that the principal
business of life is to enjoy it.

 in un normale master-detail.
Rimango sempre perplesso dalla supremazia praticamente totale
che le persone attribuiscono alla propria esperienza personale,
anche di fronte ad un grave e riconosciuto errore di modellazione.
Le esperienze rimangono comunque una cosa personale e quindi
non necessariamente trasferibile a terzi; prima di consigliarle,
va usata cautela, specie se si devono consigliare a qualcuno
che si sta appena formando le idee.
Una cosa che davvero non capisco del campo dell'informatica,
contrapposto agli altri campi del sapere, e` per quale motivo
viene visto come il campo del fai da te, quasi fosse una cosa
artistica.
Certo, c'e` stato chi ha costruito una Torre pendente, che "se
costruita in un certo modo" resta in piedi, ma non va insegnato
cosi', innanzitutto. 

 che si sta appena formando le idee.
Fin'ora hai detto cosa NON usare. La tua soluzione in questo caso e'...?
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
This is a war and we are soldiers.
Death can come for us at any time, in any place.
Now consider the alternative.
What if I am right? What if the prophecy is true?
What if tomorrow the war could be over? Isn't that worth fighting for?
Isn't that worth dieing for?
     --Morpheus, "Matrix Reloaded"

 e'...?
Innanzitutto farsi spiegare meglio le sue esigenze (il messaggio
e` insufficiente oltre che ambiguo), cosa e' stato fatto
finora (specie alla luce dei numerosi esempi riportati negli anni
su questo NG) e perche' non va bene. L'analisi e` sempre
fondamentale.
Di quali "strumenti" sta parlando? Strumenti chirurgici?
Abbiamo gia' avuto casi di operatori sanitari che chiedono
consigli qui. Sai che significa un errore in questo caso?
Cautela, sempre; da li poi si prosegue. 


Dunque siete tutti bravissimo lo ammetto :-)
premesso che:
Entity-attribute-value model so cosa è ....  etc. etc. etc.
la mia era una semplice domanda se non è chiaro quello che "voglio"
ottenere ... provo a rispiegarlo in maniera più limpida :-)
Anche se secondo me gli addetti hai settori non ci mettono molto a
decifrarla ... sviluppo da anni e conosco tutti gli argomenti che
avete toccato
non penso però di sapere tutto e in particolare nel mondo dei database
mi mancano molte nozioni ... quindi eccomi qui....
secondo me il discorso è andato fuori topic e qui termino.