Newsgroup: it.comp.appl.access
Titolo: Troppi indici sulla tabella...

Ciao a tutti!
Era un po' che non frequentavo, ma oggi mettendo le mani al mio Db
casereccio, mi sono imbattuto in questo problema.
Ho creato una nuova tabella e ho cercato di relazionarla con un'altra
e mi ha dato il messaggio di errore "Operazione non riuscita. Troppi
indici sulla tabella T_Anagrafica....".
Ho letto qua dentro che si ha un limite di 32 indici e che Access ne
crea di default sulle chiavi esterne. Ho provato ad andare nella
struttura delle tabelle collegate all'anagrafica e mettere nella
chiave esterna Indicizzato="No", ma cmq non mi permette di creare una
nuova relazione con integrità referenziale (senza integrità sì
invece).
Aggiungo che la mia struttura è più o meno questa:
T_anagrafica (dati principali della ditta,indirizzo etc) collegata
sempre tramite Id_Anagrafica(integrità referenziale, agg catena,
eliminazione catena) a
11 tabelle uno a uno (una per le caratteristiche dell'impianto
elettrico, una per quello termico, ..)
18 tabelle uno a molti (una per i lavoratori, una per gli
intermediari, una per i sopralluoghi effettuati, ....)
Suggerimenti?
Meni Tenks in advens
F.

 ha scritto nel messaggio 
news:2ea1dd74-5ada-4774...@a12g2000pro.googlegroups.com...




Suggerimenti?
Meni Tenks in advens
F.
[risposta]
Non ho capito; quanti indici ha la tabella T_anagrafica?
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggionews:2ea1dd74-5ada-4774...@a12g2000pro.googlegroups.com...

Ha una chiave primaria (IdAnagrafica) e relativo indice
Più molte relazioni tutte su IdAnagrafica (11 uno a uno e (mi pare) 18
uno a molti)
Pensavo di ridurre quelle 11 a 7-8 accorpando qualche tabella, ma mi
comporta poi rivedere il codice qua e là e la struttura di qualche
maschera
Sono davvero già giunto al limite di Access o mi sfugge qualcosa?
:-)
F.

 ha scritto nel messaggio 
news:8615fc45-5785-4302...@p36g2000prp.googlegroups.com...
Ha una chiave primaria (IdAnagrafica) e relativo indice
Più molte relazioni tutte su IdAnagrafica (11 uno a uno e (mi pare) 18
uno a molti)
[risposta]
Spiega bene; 11 relazioni che partono dalla tabella t_Anagrafica? Su campi 
differenti?
Pensavo di ridurre quelle 11 a 7-8 accorpando qualche tabella, ma mi
comporta poi rivedere il codice qua e là e la struttura di qualche
maschera
Sono davvero già giunto al limite di Access o mi sfugge qualcosa?
:-)
F.
[risposta]
Non lo so; mai avuto questo problema...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:2ea1dd74-5ada-4774...@a12g2000pro.googlegroups.com...
Ciao a tutti!
Era un po' che non frequentavo, ma oggi mettendo le mani al mio Db
casereccio, mi sono imbattuto in questo problema.
Ho creato una nuova tabella e ho cercato di relazionarla con un'altra
e mi ha dato il messaggio di errore "Operazione non riuscita. Troppi
indici sulla tabella T_Anagrafica....".
--------------------
Strano. Ogni tabella puň contenere fino 32 indici.
Tieni presente che le chiavi primarie hanno un doppio indice.
Senza indici non puoi creare relazioni.
Apri una tabella in struttura e controlla il nome e il numero di indici 
usando il menů "Visualizza", "Indici".
Da qui puoi anche eliminarli o modificarli.
Ciao, Carlo

 Ciao, Carlo
Ho Access2007 (il Db è in A2002) per cui sono andato in Progettazione/
Indici
Mi ha aperto una finestrella dove compare
NomeIndice - NomeCampo  - Ordinamento (rigaTitoli)
Id_anagrafica - IdAnagrafica - Crescente (riga1)
Primary Key - IdAnagrafica - Crescente (riga2)
Ovvero due indici direi
Se elimino una relazione da qualche parte, poi posso crearne una nuova
con la nuova tabella, per cui sembra proprio che abbia raggiunto un
qualche limite...
Posso invocare Karl?? :-)
F.

 - Mostra testo citato -
Se neanche invocare direttamente Karl funziona più incomincio a
pensare che il giorno del Giudizio sai oramai prossimo... ;-)
Non ho capito se è normale che un tabella (con un solo indice-chiave
primaria) possa essere legata con integrità referenziale a non più di
altre 30 tabelle, oppure la sfiga che ci vede benissimo ha deciso di
farlo solo con il mio DB
Ma soprattutto, se neanche invocare direttamente Karl funziona più,
incomincio a pensare che il giorno del Giudizio sai oramai prossimo,
per cui ha senso continuare a farsi domande su Access?? ;-)

 ha scritto nel messaggio
cut
...Ma soprattutto, se neanche invocare direttamente Karl funziona più,
incomincio a pensare che il giorno del Giudizio sai oramai prossimo,
per cui ha senso continuare a farsi domande su Access?? ;-)
Così solo per curiosità (ma anche trovare una soluzione) puoi mandarmi il db 
zippato che gli do un'occhiata?
Ciao, Carlo 

On 24 Gen, 19:29, "Carlo Costarella"

Inviato!
Grazie a prescindere!!!!!!
Se è un qualcosa che ho combinato io devo veramnte essere stato più
bravo del solito... ;-)
Ogni suggerimento, considerazione, critica, sarà ovviamente benvenuto.
Cio e grazie ancora.
F.

 ha scritto nel messaggio 
news:8b566bbd-c755-4f43...@y23g2000pre.googlegroups.com...

Inviato!
Grazie a prescindere!!!!!!



------------------
Ho ricevuto il db...mai visto nulla di simile!
Ricapitoliamo i tuoi dati:
hai 78 tabelle (68 tue e 10 di sistema)
236 indici (compresi quelli delle tabelle di sistema)
La tabella T_Anagrafica ha ben 31 relazioni.
Ricapitoliamo le caratteristiche di un db Access:
32 indici per tabella
32 relazioni per tabella MENO il numero di indici per quella tabella (nel 
tuo caso le relazioni possibili diventano 30 visto che la tabella 
T_Anagrafica contiene due indici).
Basta fare due conti ed ecco spiegato il messaggio che Access ti fornisce.
Sto ancora districandomi cercando di capire la struttura del tuo db e 
francamente non è cosa facile...qualora ci riuscissi si potrebbe trovare una 
soluzione (spero)...nel frattempo prova a snellire il tutto cercando di 
rispettare quei parametri.
Ciao, Carlo 



Se e quando avrai tempo di esaminare a fondo la struttura resto in
provvida attesa di consigli.
Ma è così strano avere tutte quelle relazioni?
Alla peggio rinuncio all'integrità referenziale qua e là (mi pare di
cogliere che il limite vale solo per quelle con, o sbaglio?)
Oppure riduco il numero di tabelle collegate 1 a 1 raggrupandole un
po' (tipo da 11 attuali a 3-4)
Sicuramente ragiono male io ma più o meno per incrementi successiviil
DB si è strutturato così:
Ho delle Ditte per cui T_anagrafica con tanti dati, tanto che superavo
il limite di campi per una tabella di Access.
Allora la ho divisa per argomenti (T_Anagrafica1= Indirizzo e ragione
sociale, T_Anagrafica2= Caratteristiche dei suoi
impianti,...,T_Anagrafica11=) tutte collegate 1-1
Poi una ditta ha tante tabelle 1 - oo (T_lavoratori, T_OfferteFatte,
T_Promemoria, T_AnalisiFatte...)
Inoltre ha delle tabelle 1-oo (T_GOL1, T_GOL2, ) con i Gruppi Omogenei
di Lavoratori e forse qui è migliorabile!!!!!!??? La struttura è così:
T_Angrafica 1-oo T_GO (Ovvia su ID_anagrafica interna ed esterna :Ad
ogni Ditta corrispondono più GruppiOmogeneiLav)
T_Anagrafica 1-oo T_Lavoratori (ID_anagrafica interna ed esterna:Ad
ogni Ditta corrispondono più lavoratori e non posso legarla ai GOL che
vengono definiti sempre dopo)
T_GO - T_Lavoratori (Relazione senza integrità tra  Id_GO interna e
Id_GO_Lavoratori esterna) (mi serve per attirubuire un lavoratore ad
un GOL
Giuro e spergiuro che ci ho messo tutto il mio impegno per cercar di
essere chiaro, ma così senza immagini è difficile!!
Cmq Grazie.
F.

 - Mostra testo citato -
Per il momento un po' ho risolto raggruppando un paio di
tabellecollegate 1 a 1
Per il futuro, anche per sapermi regolare in eventuali sviluppi:
1) cambiare BE è possibile in maniera indolore (trattasi di DB tutto
in locale diviso in FE e BE), con qualcosa che permetta più di 32
relazioni?
2) dividere il BE in più BE può avere un senso? nel mio caso? in altri
casi? (a sentimento mi pare malsano, ma la domanda è un po' che mi
arrovella e allora chiedo)

 ha scritto
cut
Per il momento un po' ho risolto raggruppando un paio di
tabellecollegate 1 a 1
Per il futuro, anche per sapermi regolare in eventuali sviluppi:
1) cambiare BE è possibile in maniera indolore (trattasi di DB tutto
in locale diviso in FE e BE), con qualcosa che permetta più di 32
relazioni?
-----------------------------
Il limite, come già scritto, è di 32 relazioni per tabella meno il numero di 
indici...
Potresti comunque telefonare a zio Bill e vedere se fa la modifica!
2) dividere il BE in più BE può avere un senso? nel mio caso? in altri
casi? (a sentimento mi pare malsano, ma la domanda è un po' che mi
arrovella e allora chiedo)
---------------------------------
Potrebbe anche avere un senso...io uso spesso questa tecnica.
Si tratta di analizzare bene la struttura e creare db diversi ma 
omogenei...rimangono ugualmente i limiti sopra citati.
Tieni ancora presente che, se anche non crei una relazione tra due tabelle 
ma la crei in una query, il risultato sarà sempre lo stesso: quella 
relazione verrà conteggiata e sommata a quelle fisse.
Ciao, Carlo 

On 27 Gen, 10:01, "Carlo Costarella"

A) Grazie
B) Perdona se non ho capito bene il punto1).
Anche roba tipo MySQl, SQLserver hanno quel limite di 32?
Oppure il fatto di avere FE Access cmq fa si che il limite in qualche
modo persista lo stesso, anche cambiando BE?
E se invece non persiste più, passare il solo BE a uno di questi di
cui sopra (o ad altro) quanto dolore comporta?
:-)
F.

 ha scritto
cut
Anche roba tipo MySQl, SQLserver hanno quel limite di 32?
Oppure il fatto di avere FE Access cmq fa si che il limite in qualche
modo persista lo stesso, anche cambiando BE?
E se invece non persiste piů, passare il solo BE a uno di questi di
cui sopra (o ad altro) quanto dolore comporta?
:-)
F.
Sinceramente non lo so ma, cosě a lume di naso, direi che il limite č lo 
stesso perchč comunque le tabelle vengono gestite in Access.
Una buona risposta potrebbe darla Giorgio Rancati...speriamo sia in ascolto.
Ciao, Carlo 


Thread ricco mi ci ficco...
Ciao intanto,
allora ho riscontrato tempo fa anche io lo stesso tuo problema.
Karl mi ha confermato il limite di access come BE sui 32 indici
Ho tamponato finchè ho potuto eliminando indici quando dovevo creare relazioni....
Ovviamente prima o poi il gioco non vale più la candela. Per cui il passaggio a un altro motore per il BE è inevitabile.
La mia scelta è ovviamente stata su Sql Server, essendo che la versione express (2005) è tra l'altro gratuita.
Il passaggio non è del tutto indolore, anche se non traumatico. Un buon BE (ben normalizzato) passa abbastanza indolore anche in se è in produzione.
Ovvio che, a quel punto, magari ti viene voglia di usare qualche vista, qualche SP... e allora... devi mettere mano.
Ma la "conversione pura" è strada percorribilissima.
Scarterei la creazione di N back end access. Avrai problemi in fase succsessiva di backup e comunque il limite sugli indici ti resterà.
Oltre ad un IMHO non trascurabile rallentamento delle prestazioni.
Ciao,
Massimo

 Ciao, Carlo
Bye,
Max

 lo stesso perchè comunque le tabelle vengono gestite in Access.
No, il limite varia, in quanto ad access non compete più il controllo 
dell'integrità referenziale che demandi a SQL Server
Pertanto il problema sparisce
Ottimo, buono a sapersi.
Bye,
Max
Ciao, Carlo