Discussione:
Generalizzazioni in Access
(troppo vecchio per rispondere)
Luca
2004-02-18 20:10:09 UTC
Permalink
Qualcuno di voi puo spiegarmi se e come è possibile realizzare una
generalizzazione (proveniente da una diagramma entita - relazione) in
access? Se per esempio ho l'entità padre "CLIENTE" e due entità figlie
"CLIENTE CHE CERCA CASA" e "CLIENTE CHE VENDE CASA" (generalizzazione
completa e disgiunta) come faccio a settare i corretti vincoli di integrità
referenziale di modo che si richeda che ad ogni istanza delle entità figlie
corrisponda un'istanza della padre (corrispondano per le chiavi primarie)?

Grazie a tutti
Francesco G. Rizzoni
2004-02-18 21:27:23 UTC
Permalink
Post by Luca
Qualcuno di voi puo spiegarmi se e come è possibile realizzare una
generalizzazione (proveniente da una diagramma entita - relazione) in
access? Se per esempio ho l'entità padre "CLIENTE" e due entità figlie
"CLIENTE CHE CERCA CASA" e "CLIENTE CHE VENDE CASA" (generalizzazione
completa e disgiunta) come faccio a settare i corretti vincoli di integrità
referenziale di modo che si richeda che ad ogni istanza delle entità figlie
corrisponda un'istanza della padre (corrispondano per le chiavi primarie)?
Non saprò essere molto tecnico, comunque:
I diagrammi ER non si riportano tal quali in una struttura di database, nel
tuo caso le entità figlie corrispondono a due attributi o caratteristiche
dell'entità "Cliente" e come tali è sufficiente creare due campi di tipo
Booleano all'interno della tabella per identificarne lo stato. Per renderli
obbligatori bisogna settare a Sì la proprietà dei campi 'Richiesto'.

Se però alla situazione di "CLIENTE CHE CERCA CASA = VERO" devono essere
associati tutta una serie di attributi che nel caso di "CLIENTE CHE CERCA
CASA = FALSO" non avrebbero alcun senso, si può creare una tabella
aggiuntiva con relazione 1 a 1 che conterrebbe i relativi campi.

Nella pratica questo si fa solo se i campi aggiuntivi sono molti e
giustificano l'aumento di complessità del database (leggi maggiore
possibilità di errori e minore efficienza), perchè per pochi campi si
possono tranquillamente inserire nella tabella primaria "CLIENTE" senza
scandalizzare nessuno.

Ciao.

--
Francesco G. Rizzoni

Continua a leggere su narkive:
Loading...