Newsgroup: it.comp.appl.access
Titolo: Struttura tabelle con molti campi dipendenti da altri campi e molti campi Foreign Key

Salve a tutti,
ho letto con interesse l'articolo di Vincenzo Turturro sulla 
normalizzazione, presentato alla CISA 2007.
Nella realtà, ovviamente, le situazioni che si presentano, talvolta, sono 
molto complesse.
Mi ritrovo in questo momento a dover gestire due casi situazioni:
1) molti attributi legati ad un'entità che possono essere compilati solo in 
base al valore presente in un'altro campo (es. Se il campo1 è true, devo 
compilare anche i campi Campo2 e campo3, altrimenti, devo compilare il 
campo5 e così via, se il campo6 è true devo compilare i campi campo7, 
campo8, campo9, ecc)
2) molti attributi di una entità che fanno riferimento a degli elenchi 
(tabelle di ricerca o convalida che dir si voglia es. TipologiaA, TipologiaB 
ecc.), per cui nella tabella devo inserire numerosi campi del tipo 
IdTipologiaA, IdTipologiaB, IdTipologiaC ecc.
Per quanti riguarda il primo caso la soluzione teorica sarebbe quella di 
creare tante entità accomunate da attributi omogenei collegate in relazione 
1:1 alla entità generale, ma questo significa che dovrei poi andare ad 
interrogare molteplici tabelle per ritrovare tutti gli attributi di 
un'entità generale, tra l'altro con LEFT JOIN che rallentano la velocità di 
esecuzione delle query.
Per quanto riguarda il secondo caso non vedo soluzioni, anche se il rischio 
di rallentare l'inserimento per la presenza di numerosi indici esiste.
Voi come vi comportereste? Avete consigli da darmi?
Grazie mille!
--
Nina 


Io mi trovo molto bene a centralizzare tutto in una tabella unica
che va ad autoreferenziare e ad interrogare nel modo che serve
Un esempio è quel db del webcast che AccessGroup.it ha curato per M$
-- 
-- 
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access
Segrate (MI), 7-8 giugno 2007

Grazie mille!
Vincenzo Turturro
Certificato Eucip Core Level
ITA 0000-002299 del 14/05/2007
---------------------------------------------
il sito comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------
risorse Access:
http://www.accessgroup.it
---------------------------------------------
Il sito comune di it.comp.as400
http://www.faq400.com
---------------------------------------------

Cisa - Conferenza Italiana Sviluppatori Access
<Segrate (MI), 7-8 giugno 2007
Grazie per la risposta!
--
Nina

 ---------------------------------------------
Grazie ancora!
--
Nina 

collegate (spero di essere stata chiara)!
Attenzione !
"relazione 1:1 fra A e B" significa che per ogni record in A devi avere obbligatoriamente 
un record corrispondente in B e viceversa, che siano valorizzati o meno.
E quindi la INNER JOIN funziona.
Se però consenti che in A esistano record che non hanno corrispondenti in B allora non stai implementando una relazione
1:1 bensì una relazione 1:N (o meglio, 0:N) e quindi la INNER JOIN non funziona e devi usare LEFT JOIN.


 ---------------------------------------------
Ciao,
--
Nina 

DataNascita e LuogoNascita.
Si può discutere nottate intere su quale senso abbia un record in A, descrittivo di una persona, che non ha alcun record
corrispondente in B.
Se ci pensi bene, questo rappresenterebbe una situazione reale nella quale per descrivere alcune persone bastano solo
gli attributi in A, mentre altre persone sono descritte dagli attributi in A oltre a quelli in B.
Allora sono persone diverse, nel senso che hanno natura diversa ?
Per dirla con Orwell: tutte le persone sono uguali ma alcune sono più uguali di altre ?
Oppure tutte le persone sono descritte anche da Data e Luogo di nascita ma tali attributi in alcuni casi possono essere
non valorizzati ?
Io voto per quest'ultima opzione: qualsiasi persona è descritta per mezzo di determinate caratteristiche (rappresentate
dagli attributi), che in alcuni casi (ovvero per alcune persone, cioè per alcune occorrenze dell'entità) sono note ed in
altri no.
Ma il fatto che per alcune persone non conosca certi dati non vuole dire che esse non ne siano caratterizzate: saranno
pure nate in un qualche giorno ed in un certo posto ! E quindi devo rappresentare tale fatto, pena una descrizione non
aderente e coerente con la realtà rappresentata dal mio db.


 ---------------------------------------------
Grazie mille e complimenti!
--
Nina