Newsgroup: it.comp.appl.access
Titolo: Integrità referenziale, campo contatore...

Sempre per normalizzare e cercare di non contravvenire alle principali
regole sui database, sto modificando alcune tabelle del db:
Ho una Tab formata da:
Id-Descrizione-note-PossedutoR-PossedutoT
Id è contatore numerico, PossedutoR/T campo Sì/no
Vorrei appunto creare una seconda tabella che contenga i campi PossedutoR/T
(in quanto non per tutti i record vi è la spunta) relazionata con la prima
tramite il campo Id....
Dalle numerose prove effettuate, non riesco a relazionare tramite il campo
Id, in quanto contatore, ed inoltre provando su un db di prova con un Id non
contatore (ma il mio lo è) una volta che aggiungo la spunta su possedutoR/T
mi va giustamente ad implementare la tabella, ma togliendola
successivamente, mi rimane il record nella tabella senza la spunta.... io
vorrei che sparisse ;-)
Contorta come non mai....
Qualche consiglio?
Grazie Anna!
--------------------------------
Inviato via 
http://usenet.libero.it

 Qualche consiglio?
Sì, spiega meglio.
ciao MAssimiliano


 ha scritto nel messaggio
news:212Z171Z19Z24Y...@usenet.libero.it...

Se lasci tutto all'interno di una sola tabella non violi alcuna regola sui
database relazionali. Capisco che se invece di campi Si/No si trattasse di
campi memo potrebbe valere la pena per risparmiare spazio su disco, ma in
questo caso rischi di rimetterci (struttura di un'altra tabella e
duplicazione dei campi Id).
Se poi proprio ci tieni a complicarti inutilmente la vita, il campo Id
(chiave primaria) della prima tabella deve essere di tipo Contatore, mentre
il campo Id della tabella che contiene i campi Si/No deve essere di tipo
Numerico Intero lungo e NON Contatore.
Naturalmente le due tabelle saranno in relazione uno-a-uno (senza integrità
refrenziale) in base ai rispettivi campi Id.
L'aggiornamento delle due tabelle la farai con la tecnica
maschera/sottomaschera, così che avrai la gestione automatica del campo Id
della seconda tabella. Naturalmente la maschera sarà associata alla prima
tabella e la sottomaschera alla seconda.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Ho la tab principale che contiene circa 20.000 record, ho pensato che fosse
meglio creare una seconda tabella che indichi se quell'oggetto č posseduto
...
Semplicemente č possibile che nella nuova tabella ID-PossedutoR/T vengano
salvati i dati solo in caso ci sia la spunta?
mi sembrava abbastanza logico che se solo 1.500 di questi hanno la spunta
cioč sono "Posseduti" "r" o "t" vengano salvati...
Esempio: (Attualmente č cosě composta la tab)
Id Descrizione Poss
1 casa
2 albero X
3 auto
4 moto
5 pino
6 remo
... ma lo vorrei cosě:
Id Descrizione
1 casa
2 albero
3 auto
4 moto
5 pino
6 remo
in relazione con la tab "POSSEDUTI"
Id Poss
2 X
Va meglio?
Grazie Anna!



Decisamente.
dunque il campo contatore della seconda tabella lavora per conto suo. ti
conviene relazionare id della prima tabella con rif_id_prima_tabella che
deve avere un formato numerico.
Ma la domanda importante č non č che hai un altro mdb che ha questa tabella
1 rosso
2 molto rosso
3 profondo rosso
etc ???
fammi sapere se va bene la prima parte della risposta.
ciao MAssimiliano


 refrenziale) in base ai rispettivi campi Id.
[CUT]
Volendo puoi anche aggiungere l'integrità referenziale.



Grazie Roberto, sempre chiarissimo.
La procedura che mi hai consigliato la posso utilizzare correttamente invece
per un campo quotazioni, che è numerico?
La tabella:
Id-Descrizione-Note-Posseduta-Quotazione2001-Quotazione2002-Quotazione2003
1 Pippo X 100 110 120
2 Sara X 150 160 180
3 Mimmo X 110 120
4 Pina X 120
Praticamente vengono inserite delle quotazioni su dei prodotti, però
ovviamente le quotazioni del 2001 non possono comprendere tutti i prodotti
inserite dopo tale data, quindi al momento attuale mi trovo svariati campi
bianchi.
E' la via giusta?



Vedi Anna che se sei + chiara le risposte le ricevi? Non farti prendere
dalla sindrome di Calimero
ciao MAssimiliano



In questo caso mi creerei una tabella tblQuotazioni che abbia una struttura
simile a questa:
IdQuotazione            Contatore e chiave primaria
Id                             Numerico Intero Lungo (chiave esterna)
Anno                        Numerico
Quotazione               Numerico o Valuta
L'altra tabella la organizzerei cosi:
Id                            Contatore e chiave primaria
Descrizione              Testo
Note                        Testo
Posseduta                Si/No
Quindi metterei le due tabelle in relazione uno-a-molti in base ai
rispettivi campi Id; aggiungerei alla relazione l'integrità referenziale.
Naturalmente a fronte di ogni prodotto avrai potrai avere nessuno, uno o più
record quotazioni; inoltre, così facendo, col passare degli anni non dovrai
aggiungere nuovi campi quotazioni.(2004, 2005 ecc. ecc.).
