Andrea_7 ha scritto:
Come prima cosa ho definito entità e campi - come passo successivo mi viene suggerito di descrivere le relazioni e qui nasce un dubbio: parlando con un ingegnere mi ha detto che lui ha programmato un DTBS senza descrivere queste relazioni ma andando direttamente a scrivere delle query - cosa comporta descrivere o meno queste relazioni? 1 a molti, molti a molti, uno a uno.
Confermo ciò che ha già detto willy. Soprattutto in Access che ha la possibilità di avere la comoda Finestra Relazioni, conviene avere un "quadro visivo generale" di tutto il proprio progetto. Dentro la finestra Relazioni si definiscono/disegnano le relazioni. Quando crei la relazione, abbi cura di mettere sempre la spunta su "Applica integrità referenziale". Di questo "quadro generale" ne beneficiano anche le query stesse che, quando vengono impostate, mostrano automaticamente le relazioni ove già impostate, aiutando il compito del programmatore.
Andrea_7 ha scritto:
Dando un'occhiata al support della Microsoft viene detto di inserire nella terza tabella i due campi ID delle due tabelle primarie, quello che non riesco a giustificare è come mai questi due campi ID aggiunti nella terza tabella devono assumere il vincolo di chiave primaria?
willy55 ha scritto:
E' chiaro che la coppia di chiavi FK può essere impiegata per contrassegnare in modo univoco il record (nella tabella di giunzione) ma, in Access, si può integrare anche una specifica PK (come un campo contatore che viene incrementato in automatico):
Molti manuali parlano della "non indispensabilità" di un solo campo chiave primaria nella "tabella di congiunzione". Io trovo questo discorso relativamente incompleto e/o depistante. Se la tabella di congiunzione dovesse essere anch'essa una ulteriore tabella madre per una relazione di livello più basso, risulta scomodo (o impossibile) gestirla.
Ti dirò di più. Io trovo sempre molto comodo ordinare tutte le tabelle in base al campo IDChiavePrimaria. In questo modo hai una specie di cronologia automatica. E sai quante volte può capitare a un utente di dover inserire un nuovo dato, avere la sensazione che qualche valore somiglia o è uguale a qualche record precedentemente già inserito (mo fammi vedere cosa avevo inserito l'altro ieri a Tizio...!!!). Il campo IDChiavePrimaria di questa tabella di congiunzione garantisce tale ordinamento.
Andrea_7 ha scritto:
- Nel primo caso ho impostato come chiave primaria il solo ID della tabella di collegamento ed in più ho aggiunto gli ID delle due tabelle da collegare con relazione molti a molti; - Nel secondo caso ho impostato come chiave primaria tutti e tre gli ID sopra menzionati.A cosa incorro nel primo o nel secondo caso? E' un'impostazione errata del DTBS?
Il primo caso non l'ho capito.
Il secondo mi suona sicuramente errato.
Ti abbiamo esaurientemente risposto prima.