Newsgroup: it.comp.appl.access
Titolo: Prime armi: ancora sulle relazioni tra le tabelle.

Ciao, sto facendo pratica nel creare relazioni tra le varie tabelle dei
database che creo d'esempio. Tuttavia molte volte sbaglio, anche
nell'applicare l'integrità referenziale, quindi sto qui a chiedervi
consiglio, con un esempio.
Io ho due tabelle Clienti e Ordini:
CLIENTI
IDCliente
Nome
Cognome
Telefono
Indirizzo
Città
Nazione
Ordini
IDOrdine
TitoloLibro
CodiceLibro
PrezzoLibro
volendo mettere in relazione le due tabelle io devo inserire il campo
IDCliente nella tabella Ordini, giusto?, in modo che in una query mi basta
l'IDCliente per ottenenerne automaticamente anche tutti gli altri dati. E'
così o sbaglio qualcosa?
Per quanto riguarda l'integrità referenziale mi capita spesso di ottenere il
classico errore che è impossibile applicare l'integrità
perchè...etcc....etcc...Come posso io, principiante, applicare l'integrità
'alla prima botta' senza sbagliare, quali regole seguire?
Grazie mille a tutti ancora.
Ciao.

Una domanda che mi viene in mente ora: ma che per collegare due tabelle devo
inserire la chiave primaria della tabella1 nella tabella2 correlata?
Se, poi, ho due tabelle in relazione molti-a-molti mi potete fare un esempio
di come creare una terza tabella in modo che possa collegare quelle due
tabelle?
Grazie.

 Ciao.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Grazie.
Ipotizziamo che hai una tabella Libri così strutturata:
IdLibro            Contatore e chiave primaria
Titolo               Testo
e una tabella Autori così strutturata:
IdAutore            Contatore e chiave primaria
Cognome           Testo
Nome                Testo
Queste due tabelle sono logicamente legate tra di loro con una relazione
molti-a-molti (un libro può essere scritto da più autori e un autore può
aver scritto più libri).
Per realizzare la relazione crei una tabella chiamata LibriAutori così
strutturata:
IDLibAut            Contatore e chiave primaria
IdLibro               Numerico
IdAutore             Numerico
Le tabelle Libri e LibriAutori sono in relazione uno-a-molti in base al
campo IdLibro (chiave primaria della tabella Libri e chiave esterna della
tabella LibriAutori); le tabelle Autori e LibriAutori sono in relazione
uno-a-molti in base al campo IdAutore (chiave primaria della tabella Autori
e chiave esterna della tabella LibriAutori). Per ambedue le relazioni
aggiungi l'integrità referenziale.
Ti consiglio, a questo punto, di aprire la struttura della tabella
LibriAutori e, relativamente al campo IdLibro, esegui l'Autocomposizione
Ricerca... basandola sulla tabella Libri; esegui anche l'Autocomposizione
Ricerca... per il campo IdAutore basandola, questa volta, sulla tabella
Autori.
Creati una maschera (chiamala Maschera1) con  visualizzazione a Maschera
singola che abbia come origine record la tabella Libri; in questa maschera
inserisci una sottomaschera che abbia una visualizzazione a Maschere
continue e che abbia come origine record la tabella LibriAutori.
Se apri Maschera1, per ogni libro vedrai il suo titolo nel corpo della
maschera e nella sottomaschera andrai ad inserire il nome degli autori.
Poichè nella tabella LibriAutori hai eseguito, per il campo IdAutore,
l'Autocomposizione Ricerca..., il controllo IdAutore della sottomaschera ti
verrà automaticamente creato come casella combinata dal cui elenco
sceglierai agevolmente il nome degli autori.
Operando così, se quando inserisci un libro inserisci anche i relativi nomi
degli autori, registrerai un record nella tabella Libri ed uno o più record
nella tabella LibriAutori (uno per ogni autore di quel libro), creando di
conseguenza la relazione molti-a-molti tra le tabelle Libri ed Autori per
quel libro.
Chiaro?


Beh, non sono ancora arrivato a fare la creazione di maschere e
sottomaschere, ma cmq stampo il tuo reply e lo archivio, perchč mi sarą di
aiuto in seguito. Cmq ho capito il senso del discorso, ovvero
sull'importanza della tabella di collegamento e su come crearla.
Grazie infinite ancora!
Ciao.

 primaria della tabella ORDINI e chiave esterna della tabella Ordini.
Perfetto!
Grazie ancora.
A questo punto ti devo un doveroso ringraziamento: GRAZIE.
A Giugno tenterò di certificarmi MOUS, dici che ne vale la pena dal punto di
vista professionale, di possibilità lavorative?

 ha scritto nel messaggio
news:21UN6.15224$Ql3.6...@news.infostrada.it...

Dipende dal tipo di carriere professionale che intendi percorrere.
Certamente avrai meno limiti e più opportunità di scelta.


 primaria della tabella ORDINI e chiave esterna della tabella Ordini.
Ah, infatti l'integrità referenziale consente di tenere sotto controllo le
attività svolte sui record delle tabelle impedendo che uno o più record
vengano cancellati per sbaglio. Si può impostare l'integrità referenziale
solo in una relazione uno-a-molti con un campo chiave primaria nella
Tabella1 e chiave esterna nella Tabella2 perchè solo così posso rispettare
le tre regole dell'integrità referenziale. Infatti il messaggio di errore
che mi appariva prima riguardava la possibilità che alcuni record nella
tabella correlata non avessero corrispondenza con i record della tabella
primaria.
Giusto? Scusa se sono tedioso ma NON VOGLIO andare avanti senza aver capito
bene i concetti ed ho solo due giorni alla settimana per approfondirli, e
qualche decina di minuti gli altri giorni nella pausa pranzo del lavoro.
Grazie ancora per l'aiuto!
Ciao.