Newsgroup: it.comp.appl.access
Titolo: dividere tabelle con campi comuni

Buongiorno a tutti, 
 
Ho tre tabelle "tabella1" "tabella2" e "tabella3" con i campi in comune
id, idriferimento, data, idoperatore 
 
Poi altri campi che cambiano e sono diversi in ogni tabella
 
Siccome per avere un elenco dei record in una form devo fare una query unione  che è molto lenta ho pensato di fare una tabella unica che contiene i campi in comune e un collegamento id->idmodulo che relazione i record alle 3 tabelle che hanno solo i campi diversi
 
Nella tabella unica aggiungerò un campo "nometabella" in cui ci sarà scritto "tabella1" "tabella2" oppure "tabella3" in modo che quando apro un record so quale tabella associare alla sottomaschera interna
 
c'è un modo per dividere le tabelle in modo automatico?
 
 
 
 
 
 
 
 
 
 
 


Non si capisce cosa intendi chiedere con "dividere le tabelle"
Come le vorresti dividere?
 
 


tabellaMadre id, data, oggetto, testo, firmato, tabellafiglio
 
3 tabelle con campi diversi
tabella "figlio1" campi: id, idmadre, a, b, c,d,e 
tabella "figlio2" campi: id, idmadre, f,g,h,i,l
tabella "figlio3" campi: id,idmadre, m,n,o,p,q
 
tabella madre in relazione uno a molti con tutte e 3 le tabelle
 
quando apro un record di tabella madre associo la corretta tabella in recordsource della sottomaschera
 
questo eviterebbe di ottenere con una query unione tutti i record di tre tabelle con firmato =0
otterrei i record con firmato uguale a 0 dalla tabella madre gli altri campi diversi sono nelle tre tabelle figlio
 
può funzionare?


Quei  a,b,c,d,e  e poi  f,g,h,i,l  e poi m,n,o,p,q  cosa sono?
Nel senso sono campi della tabella madre?
Onestamente non si capisce (o almeno io non capisco) da cosa parti e 
cosa vuoi ottenere
Magari con un esempio di dati contenuti in tabella madre, un esempio di 
come dovrebbero venire le tre tabelle figli, ed un esempio di cosa vuoi 
ottenere come obiettivo finale si potrebbe capire meglio
 
 

 
 
la butto là
 
abcde potrebbero essere informazioni tipo l'indirizzo; via, civinco, CAP, 
città, etc
 
fghil sono magari telefono, mail, skype, telegram, etc
 
mnopq sono altre informazioni ancora, diverse dalle prime, relative a un 
altro "argomento"
 
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........


si esatto, ho scritto lettere diverse per indicare che i campi in comune alle tre tabelle sono nella tabella madre
mentre nelle tre tabelle figlio ci sono solo i campi diversi
 
la tabellamadre sarà in relazione 1 a molti con tutte e tre le tabelle figlio con i campi 
tabellamadre ID (autoincrement) ---> IDModulo (int) tabella figlio1
tabellamadre ID (autoincrement) ---> IDModulo (int) tabella figlio2
tabellamadre ID (autoincrement) ---> IDModulo (int) tabella figlio3
 
quello che voglio ottenere è aumentare le prestazioni quando devo ottenere i record con il campo firmato(boolean) a zero se tutti i campi in comune sono nella stessa tabella madre una select è molto più veloce di come è la situazione attuale, la situazione attuale è tre tabelle completamente separate con alcuni campi in comune e per ottenere i record delle tre tabelle con campo firmato a zero devo useguire una query Union molto lenta quando i record sono molti.
 
 
 

 unione  che è molto lenta 
 
sto litigando anche io con query "lente", cercando alternative come pre-
calcolare il periodo oppure il saldo
 
però son curioso di sapere cosa significa "lenta" nel tuo caso: quanti 
record da elaborare, quanto tempo impiega, cosa ti aspetti



non vedo il motivo di usare tre tabelle figlio
ne farei una sola che contiene tutti i campi dei precedenti tre
e un campo aggiuntivo per indircare a quele delle tre tipologie 
appartiene la riga inserita
 
 
poi questo campo firmato è indicizzato?
 
BFS
 
 


significa query unione di 10 tabelle circa e di 2 minuti e mezzo in rete prima che si apre la form.


sarebbero tre tabelle perché i campi sono davvero molti, non so se ci stanno tutti in un unica tabella.


se parliamo di access come BE la tabella supera i 256 campi?
 
 
inoltre non hai risposto se il campo "firmato" è indicizzato o meno
 
BFS
 
 

 
 
150" sono effettivamente tanti, soprattutto se uno la esegue decine di 
volte al giorno, fossero anche parecchi record è comunque un tempone
 
la mia si attesta sui 35 secondi ma la eseguo sicuramente una volta al mese 
più magari altre 5 o 6 in base agli aggiornamenti che ricevo (oggi, per 
esempio) per cui ci ho speso su un po' di tempo per cercare di faar meglio 
ma ho altre priorità per cui la ho messa da parte
 
se non è un segreto di stato sarebbe bello poterla vedere, magari 
convertita in SQL



non ricordo, ovviamente immagino sia meglio che sia indicizzato

 non ricordo, ovviamente immagino sia meglio che sia indicizzato
 
 
 
deve esserlo se vuoi avere migliori prestazioni
 
con un esempio terra terra..
immagina dover estrapolare tutti i Rossi da un elenco telefonico con i 
nomi in ordine alfabetico e poi fare la stessa ricerca in un elenco 
telefonico con i nomi messi a caso
 
 
BFS


chiarissimo

Il giorno mercoledì 1 giugno 2022 alle 07:32:38 UTC+2 BFS ha scritto:

non sono ancora riuscito a capire se ha senso la mia intenzione
 
una tabella madre in relazione uno a molti a tre tabelle figlio
 
qualcuno ha già provato?