Branzi ha scritto:
Ok quindi la cosa più naturale è quella di fare una tabella Giornali con i campi: NomeGiornale, DataPubbl, IDGiornale; una tabella Articoli con i campi: NomeArticolo, Tipologia, Descrizione. Ora, in un progetto del DB corretto come dovrei relazionare le due tabelle?
Una tabella Giornali pensata così, avrà nel campo NomeGiornale il ripetersi di valori come "Il Sole 24 ore"; "Il Tempo"; ecc... Questa tabella deve chiamarsi Pubblicazioni e avere un IDPubblicazione (non IDGiornale). Al di sopra di questa tabella deve esistere una tabella Giornali con i seguenti campi: IDGiornale/NomeGiornale. OK, il campo NomeGiornale comparirà soltanto una volta e questo garantirebbe la sua UNIVOCITA'...si potrebbe anche relazionare:
Giornali.NomeGiornale uno-a-molti con Pubblicazioni.NomeGiornale
in questo caso potresti anche non avere il campo IDGiornale (relativamente supefluo)...ma...devi sapere che si preferisce più comodamente usare per prassi i campi ID numerici, più veloci e immediati per Access (si tratta di fare un discorso che va un po' per il sottile).
Ritornando alla domanda "come faccio a relazionare"? La tabella figlia (quella di arrivo), quando non ce l'ha tale campo, bisogna crearlo appositamente. Di conseguenza la tabella Articoli deve contenere un campo IDPubblicazione. Riepilogando tutto, schematizzerei così:
Giornali
IDGiornale (Numerazione automatica, chiave primaria)
NomeGiornale
Pubblicazioni
IDPubblicazione (Numerazione automatica, chiave primaria)
IDGiornale (numerico)
Data (data)
Numero (numerico, da digitare manualmente)
Articoli
IDArticolo (Numerazione automatica, chiave primaria)
IDPubblicazione (numerico)
Titolo
Descrizione
Pag (numerico)
IDGiornalista (numerico)
(non devi includere qui il campo Tipologia o Categoria, vedi il seguito)
Giornalisti
IDGiornalista (Numerazione automatica, chiave primaria)
Nome
Cognome
Categorie
IDCategoria (Numerazione automatica, chiave primaria)
Categoria
Articoli-Categorie
IDAC (Numerazione automatica, chiave primaria)
IDArticolo (numerico)
IDCategoria (numerico)
Relazioni:
Giornali.IDGiornale uno-a-molti con Pubblicazioni.IDGiornale
Pubblicazioni.IDPubblicazione uno-a-molti con Articoli.IDPubblicazione
Giornalisti.IDGiornalista uno-a-molti con Articoli.IDGiornalista
Articoli.IDArticolo uno-a-molti con Articoli-Categorie.IDArticolo
Categorie.IDCategoria uno-a-molti con Articoli-Categorie.IDCategoria
Come puoi notare ho preferito usare sempre relazioni fra campi ID Numerazione automatica------>Numerico per tenere fede alla prassi consolidata.
Branzi ha scritto:
In tutto questo continuo a non trovare la motivazione per cui la selezione degli articoli effettuata nella casella di riepilogo presente nella mia MascheraGiornali non riesca ad essere passata alla query. Quando gli dico di effettuare la ricerca avendo selezionato determinati articoli lui mi restituisce una tabella vuota, ma la query la esegue.
Questo lo vediamo con calma in un secondo momento. A me sembra che il problema non si esaurisca soltanto in questa unica ristretta osservazione. Ritengo che, soltanto quando avremo sistemato tutto correttamente, potremo risolvere questo, e non solo, problema in maniera più veloce ed elegante. Se tentassimo di dare una unica risposta, sono sicuro che si presenteranno insidie sempre più gravi più in là.