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
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
> > 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
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".
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.
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.
> > 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