Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ER - Domanda neofita

0 views
Skip to first unread message

FrancescoLazzaro

unread,
Sep 9, 2008, 7:46:10 PM9/9/08
to
Ho un dubbio sulle chiavi esterne.

Supponiamo che devo gestire una catena di hotel.

Di questi hotel qualcuno ha il parcheggio altri no.

Le tabelle che ho sono queste:

HOTEL (id_hotel,fax,email,...)
PARCHEGGIO (HOTEL.id_hotel,costo,...)

Con id_hotel chiave primaria di HOTEL e HOTEL.id_hotel chiave esterna
di HOTEL in PARCHEGGIO.

Se i parcheggi hanno un sempre un AUTOLAVAGGIO la chiave esterna di
AUTOLAVAGGIO è la chiave primaria di HOTEL o di PARCHEGGIO?

Sono assolutamente la stessa cosa oppure se inserisco in AUTOLAVAGGIO
un id_hotel di un hotel che non ha parcheggio mi produce un errore?

Purtroppo ora non posso fare esperimenti ma devo assolutamente
saperlo...

grazie mille!
Francesco

Benjamin Gufler

unread,
Sep 10, 2008, 3:32:56 AM9/10/08
to
Per essere un po pigro: La tua domanda non riguarda ER, ma il modello
relazionale. ;-)

On 2008-09-10 01:46, FrancescoLazzaro wrote:
> Se i parcheggi hanno un sempre un AUTOLAVAGGIO la chiave esterna di
> AUTOLAVAGGIO è la chiave primaria di HOTEL o di PARCHEGGIO?

Un PARCHEGGIO è un posto per _una_ macchina o l'intero parcheggio?

> Sono assolutamente la stessa cosa oppure se inserisco in AUTOLAVAGGIO
> un id_hotel di un hotel che non ha parcheggio mi produce un errore?

Dipende da se id_hotel in AUTOLAVAGGIO (se proprio c'è bisogno di avere
AUTOLAVAGGIO come relazione a parte) è chiave esterna a HOTEL o a
PARCHEGGIO.

Benjamin

FrancescoLazzaro

unread,
Sep 10, 2008, 5:25:28 AM9/10/08
to
On 10 Set, 09:32, Benjamin Gufler <guf...@cs.tum.edu> wrote:

> > Se i parcheggi hanno un sempre un AUTOLAVAGGIO la chiave esterna di
> > AUTOLAVAGGIO è la chiave primaria di HOTEL o di PARCHEGGIO?
>
> Un PARCHEGGIO è un posto per _una_ macchina o l'intero parcheggio?

si è inteso in senso generale non contano i numero dei posti.

> > Sono assolutamente la stessa cosa oppure se inserisco in AUTOLAVAGGIO
> > un id_hotel di un hotel che non ha parcheggio mi produce un errore?
>
> Dipende da se id_hotel in AUTOLAVAGGIO (se proprio c'è bisogno di avere
> AUTOLAVAGGIO come relazione a parte) è chiave esterna a HOTEL o a
> PARCHEGGIO.

si è chiave esterna di PARCHEGGIO. La tua domanda lascia ad
intravvedere che la differenza c'è eccome. Comunque aspetto lumi...

grazie mille per l'intervento
Francesco

The man with two watches

unread,
Sep 10, 2008, 4:19:48 PM9/10/08
to
"FrancescoLazzaro"

> Se i parcheggi hanno un sempre un AUTOLAVAGGIO la chiave esterna di
> AUTOLAVAGGIO è la chiave primaria di HOTEL o di PARCHEGGIO?

Ovviamente e` la PK di parcheggio, dato che non dovrebbe
referenziare un hotel senza parcheggio.
Questa e` una domanda "da libro di esercizi", ossia quelle in cui
e` piu' importante non dare la risposta sbagliata che motivare
quella giusta.

> Sono assolutamente la stessa cosa oppure se inserisco in
> AUTOLAVAGGIO un id_hotel di un hotel che non ha parcheggio mi
> produce un errore?

Non produce un errore "di codice", ma semplicemente potresti avere
un hotel con autolavaggio ma senza posteggio, il che e`
impossibile data la regola che "ogni posteggio ha un autolavaggio".


The man with two watches

unread,
Sep 10, 2008, 4:34:53 PM9/10/08
to
"The man with two watches"

> Non produce un errore "di codice", ma semplicemente potresti avere
> un hotel con autolavaggio ma senza posteggio, il che e`
> impossibile data la regola che "ogni posteggio ha un autolavaggio".

Hum... ripensandoci questa regola di per se' non implica che un
autolavaggio non possa esistere senza un posteggio.

Bisognerebbe avere l'ulteriore regola (in effetti non dichiarata
ne' deducibile, ma solo intuibile) che un autolavaggio non possa
esistere senza un posteggio.


The man with two watches

unread,
Sep 10, 2008, 4:45:14 PM9/10/08
to
"The man with two watches"
> "FrancescoLazzaro"
>> Se i parcheggi hanno un sempre un AUTOLAVAGGIO la chiave esterna di
>> AUTOLAVAGGIO è la chiave primaria di HOTEL o di PARCHEGGIO?
>
> Ovviamente e` la PK di parcheggio, dato che non dovrebbe
> referenziare un hotel senza parcheggio.

In piu`, visto che si tratta di modello E/R, vincolo con
cardinalita` obbligatoria 1:1, in modo da richiedere che un posteggio
abbia _sempre_ un autolavaggio.


FrancescoLazzaro

unread,
Sep 15, 2008, 11:43:40 AM9/15/08
to
On 10 Set, 22:19, "The man with two watches" <d...@spam.me> wrote:

> > Sono assolutamente la stessa cosa oppure se inserisco in
> > AUTOLAVAGGIO un id_hotel di un hotel che non ha parcheggio mi
> > produce un errore?
>
> Non produce un errore "di codice", ma semplicemente potresti avere
> un hotel con autolavaggio ma senza posteggio, il che e`
> impossibile data la regola che "ogni posteggio ha un autolavaggio".

infatti come pensavo io, poi mi è stato ulteriormente confermato
altrove.

grazie

0 new messages