Newsgroup: it.comp.appl.access
Titolo: [Struttura DB] Gestione Distinte

3D già Postato su MPIOA non è un Cross post.
Mi trovo in difficoltà con la struttura di Distinte applicata a più
Società...!
Mi speiago meglio.
Devo strutturare un DB che possa gestire "Analisi di laboratorio di un certo
tipo" su
svariate apparecchiature.
Le 5 Società hanno apparecchiature simili, ma differenti, anche se le misure
da effettuare potrebbero essere le stesse.
Inizialmente avendo solo 1 società avevo strutturato la gestione con sistema
a Distinta(già errata a mio avviso ma no mi sono accorto finchè non si è
espanso).
Tab1
IdElemento(PK)
Descrizione
TabDistinta
Padre (PK)
Figlio  (PK)
TbAllegati
IdAllegato (PK)
IdElemento
Ora avendo più Società se effettuo questa struttura ottengo che la Società2
potrebbe avere un SottoTipo ereditato dalla Società1...., infatti solo il
Primo livello è univoco alla SocietàX gli altri possono o potrebbero(come
Tipo) essere associati alle altre, ma associando i sottotipi mi si porta
anche tutta la struttura discendente...
Es
Tab1:
1  ENEL
2  EDISON
3  EDF
4  Macchine Elettriche
5  Trasformatori
TabDistinta
1    4            --> ENEL ha Macchine Elettriche
2    4            --> EDISON ha Macchine Elettriche
3    4            --> EDF ha Macchine Elettriche
4    5            --> Tra le Macchine elettriche ho i Trasformatori
Per forza di cose Tutte i Records Principali avendo Macchine Elettriche
avranno(potrebbero avere) Trasformatori...!
tblAllegati
1    5    Prova1
--> Prova 1 Effettuata sul Trasformatore Specifico(IdAllegato=1)
     che appartiene a Trasformatori(IdElemento=5 alla tabella Tab1)
Come si evince in questo caso la Prova 1 in Tabella Allegati diventa figlia
dell'elemento 5 sotteso all'elemento 4 in comune alle 3 società...., cosa
ovviamente non vera..., risulta pure ovvio capire l'errore... ora il
rpoblema è razionalizzarlo e risolverlo.
Come dovrei realizzare la struttura al fine di mantenere questa flessibilità
ma riuscendo a mantenere
la discriminante...di livello superiore..., o meglio tutta la catenaria
corretta..?
Spero di essermi spiegato bene...
Sono in fase di strutturazione pertanto non ho problemi a rifare il
tutto..., la cosa importante è che mi tornino tutti gli incastri...
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------


Sempre al lavoro! Anche il giorno di San Marco!
Io ho risolto con quattro tabelle, spero possa servirti:
Tab1: Codifica (primo livello)
IDCodifica
Descrizione
altro
Tab2: Codifica2liv (secondo livello)
IDCodifica2Liv
IDCodifica
Descrizione
Altro
Tab3: Codifica3Liv (terzo livello)
IDCodifica3Liv
IDCodifica2Liv
IDCodifica
Descrizione
Altro
Tab4: Codifica4Liv (quarto livello)
IDCodifica4Liv
IDCodifica3Liv
IDCodifica2Liv
IDCodifica
Descrizione
Altro
Le relazioni sono ovviamente uno a molti:
IDCodifica....IDCodifica (tra prima e seconda)
IDCodifica2Liv...IDCodifica2Liv (tra seconda e terza)
IDCodifica3Liv...IDCodifica3Liv (tra terza e quarta)
Questa struttura ti permette sempre di risalire da un record di un qualsiasi 
livello al livello o ai livelli superiori.
Ciao, Carlo 

 Sempre al lavoro! Anche il giorno di San Marco!
Purtroppo queste cose le posso fare solo SABATO e DOMENICA e FESTIVI...

Ciao Carlo.
Era quanto avevo pensato inizialmente, ma nel mio caso non posso avere
VINCOLI di livello
che mi costringerebbero a ristrutturare....!
Purtroppo la strada da seguire è certamente quella della Ricorsione su
Tabella AutoReferenziata
ma mi manca l'aggancio per renderla Funzionante in modo discriminativo....!
Avevo pensato di generare un Codice per Ogni Record nella Tabella Distinta
che tenesse conto dei
vari Livelli....!
Una sorta di Stringona con un separatore.... SPLIT(Stringa,Separatore) ed
ottengo la gerarchia...
Solo che imbarcarmi in una cosa simile quando magari, e sono certo qualcuno
abbia già affrontato questo problema, c'è una via maestra più agevole mi
spiacerebbe....!
Ho il sospetto di perdermi in un bicchiere d'H2O anchese questo problema non
è banale....
Grazie


Un'idea mi sarebbe venuta, e parrebbe funzionale anche se irrigidisce la
flessibilità in questione, il problema poi è proprio questo...!
Invece di strutturare in modo Standard:
Tab1
    IdElemento(PK)
    Descrizione
TabDistinta
    Padre (PK)
    Figlio  (PK)
TbAllegati
    IdAllegato (PK)
    IdElemento
Visto che ogni Argomento non deve essere esportabile ad altri, ma solo sotto
il precedente...!
Tab1
    IdElemento(PK)
    Descrizione
    IdElementoPadre
TbAllegati
    IdAllegato (PK)
    IdElemento
Questo aumenterebbe, ovviamente gli Elementi della Tab1, forse anche un pò
contro alla normalizzazione... ma sono certo di avere la tracciabilità
dell'Allegato....
Che dite...?
