Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Basi di dati ~ informatica triennale (http://www.dsy.it/forum/forumdisplay.php?forumid=211)
-- Chiavi primarie (http://www.dsy.it/forum/showthread.php?threadid=41336)
Chiavi primarie
Salve a tutti, durante una lezione della Castano mi è sfuggita una cosa. Perchè è preferibile aggiungere un ID come chiave piuttosto che usare un valore della relazione che si sa essere unico?
Prova a guardare nelle videolezioni, forse troverai qualche risposta. Probabilmente faceva riferimento ad entità con chiave primaria poco chiara, dove per logica non ci dovrebbero essere tuple ripetute, ma nella pratica servono codici "generici" o valori nulli.
__________________
.. ±·ø·±-`` MuSiC iS My LanGuAGe ´´-±·ø·± ..
Re: Chiavi primarie
Originally posted by Guccio
Salve a tutti, durante una lezione della Castano mi è sfuggita una cosa. Perchè è preferibile aggiungere un ID come chiave piuttosto che usare un valore della relazione che si sa essere unico?
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
Spiegato benissimo grazie mille
Re: Re: Chiavi primarie
Originally posted by number15
Magari hai già risolto, ma ti rispondo comunque.
E' semplicemente per un discorso di comodità: hai un dato molto più piccolo da portarti in giro.
Es. tabella utente ed usi come chiave primaria 'email' (diciamo varchar(60)).
Ora in ogni tabella in cui devi mettere la chiave esterna su email, devi creare un campo varchar(60) per contenere l'email.
Hai un campo più scomodo da gestire (errori di battitura in caso di data entry manuale, join più pesanti da fare sul varchar).
Conviene quindi creare SEMPRE un campo id_ tipo int unsigned AUTO_INCREMENT (o equivalenti + grandi o + piccoli).
In fase di data entry dovrai semplicemente lasciare quel campo nullo, e ti verrà garantito che ogni nuova tupla sarà unica.
Dovrai poi mettere una chiave unique su email per 'dire' che è una chiave candidata e che quindi non può avere valori duplicati.
Spero di essermi spiegato.
Ciao
Ciao,
mi posteresti un esempio per capire meglio la situazione?
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
Originally posted by number15
Ciao,
mi posteresti un esempio per capire meglio la situazione?
Cosa intendi per 'inserire delle attività'?
Intendi per esempio poterla scegliere da un elenco?
Se sì, io aggiungere uno/due campi enum in attività del tipo ha_contratto(Y,N), ha_sede(Y,N) (o semplicemente è_selezionabile(Y,N)) che gestisci tramite trigger after insert on works.
Quindi id_works in attività direi che non ha senso.
Ciclo?
__________________
Portale segnalazioni marchi-negozi di abbigliamento
http://www.ovojo.com
Originally posted by number15
Cosa intendi per 'inserire delle attività'?
Intendi per esempio poterla scegliere da un elenco?
Se sì, io aggiungere uno/due campi enum in attività del tipo ha_contratto(Y,N), ha_sede(Y,N) (o semplicemente è_selezionabile(Y,N)) che gestisci tramite trigger after insert on works.
Quindi id_works in attività direi che non ha senso.
Ciclo?
All times are GMT. The time now is 11:08. | Show all 9 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.