Newsgroup: it.comp.appl.access
Titolo: tabella access a campi variabili?

ecco il mio dubbio: è possibile creare una tabella access in cui ogni
record abbia un numero ampliabile di campi? Ad esempio consideriamo la
tebella giocatori, in cui oltre ai dati anagrafici di ciascun giocatore
vengono indicate anche le squadre in cui ha militato fino a quel
momento. Se il giocatore è Maldini sarà sufficiente un solo campo il
cui valore "Milan" è sufficiente a descrivere la carriera del
giocatore, ma se dovessi indicare le squadre in cui ha militato Baggio
per esempio come dovrei fare? Infatti dovrei indicare che ha giocato
nel Vicenza, Fiorentina, Juventus, Milan, Inter, Bologna, Brescia. Devo
creare un numero di campo sufficienti tali che per qualsiasi giocatore
possa essere indicata la carriera (del tipo predispongongo per tutti i
campi squadra1, squadra2, squadra3, ecc...), oppure esiste qualche
altro sistema che permetta di allargare a piacimento il numero di campi
per ogni record?


Ciao e benvenuto
In realtà quello che vuoi fare non si può fare o meglio non si deve
E' un problema di normalizzazione di dati.
Invece che nella tabella del giocatore devi crearti una sottomaschera che
prende i dati da una tabella diversa.
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 ha scritto nel messaggio 
news:1135240413.3...@g47g2000cwa.googlegroups.com...

Ciao,
il tuo è il normale utilizzo dei database relazionali. Solo che devi girare 
il problema.
Non sono i campi che variano, all'aumentare delle info, ma le tabelle che 
relazionerai tra loro!
Una tabella sarà l'Anagrafica del calciatore, essa avrà un campo(ID 
normalmente di tipo contatore) che ti servirà per indicare alle altre 
tabelle un numero UNIVOCO, + tutti i campi di una Anagrafica : 
AnnoDiNascita,Luogo,.......
Nel tuo caso avrai almeno una tabella Squadre (Juve,Milan,Inter ..... + un 
campo(ID di tipo contatore) che servirà nelle relazioni, ed altri campi 
specifici AnnoDiFondazione, SedeSociale, Telefono del segretario........!
Poi potresti avere anche una tabella Partite (2004/1a, 2004/2a ..... 
2004/32r, ..... + due campi SquadraDiCasa e SquadraOspite di tipo Long(che è 
il numero che viene creato nel tipo Contatore) e che raccoglieranno gli ID 
dalla tabella Squadre), + tutti i campi specifici della partita Campo(meglio 
se prelevato da una tabella ad Hoc),disputataIl,Arbitri (altra tabella.. 
...),...... RISULTATO!
Infine la tabella che serve a te: Militanze ( brutto nome! ma non mi è 
venuto niente di meglio!), questa tabella avrà due campi Long : che 
raccolgono l'IDGiocatore e l'IDsquadra + altri campi specifici della 
militanza(dataDal,finoAL,CostoDiIngaggio -------- ))
L'ultima tabella è la meno intuitiva poichè coninvolge almeno due tabelle in 
una relazione MOLTI a MOLTI.
Insomma, devi suddividere le informazioni in cellule, se non conosci il 
numero di ripetizioni di un campo allora devi creare una Tabella che 
alimenta quel campo! Questo ti permetterà di avere infinite ripetizioni, 
senza appesantire una sola tabella. Si chiama Normalizzazione delle 
informazioni. Google ti può aiutare con una semplice ricerca.
-- (facci sapere ....)
       # = =
      /\
     /*\        Ivan
    /**\                vi augura
   /***\      Buone
  /****\     Feste
 /*****\
/---|  |---\    (\/)
     |   |       [[=]]