> Il giorno 24/set/2014, alle ore 00:26, Enrico Bianchi 
> <enrico.bian...@ymail.com> ha scritto:
> 
> On 09/23/2014 05:32 PM, Marco Fochesato wrote:
>> Si infatti, per "sentirmi stretto", parlavo di quello: perchè deve esserci 
>> per forza na colonna id??
> 
> Se intendi "perche` deve esserci per forza una chiave primaria", il motivo e` 
> che permette una ricerca piu` veloce (nonche` univoca) dei record presenti 
> sulla tabella. In teoria questo non e` vincolante (basta fare gli indici 
> nella maniera corretta), ma e` comunque una buona norma.
> Se invece intendi "perche` deve esserci per forza una chiave primaria 
> numerica e incrementante", questo e` un grosso dibattito nel mondo dei 
> database, ovvero ci sono persone che preferiscono una colonna 
> autoincrementante mentre ci sono persone che preferiscono una chiave 
> identificativa. I primi portano come argomentazioni piu` o meno quelle di 
> Carlos (in teoria ne vedo solo una valida), mentre i secondi portano come 
> argomentazione l'univocita` (nonche` identificabilita`) del record. 
> Personalmente sono a favore della chiave primaria identificativa, soprattutto 
> in virtu` che nelle fact tables permette estrazioni piu` veloci (non devo 
> fare JOIN con le tabelle padri), ma tieni conto che molto dipende da quello 
> che devi e come lo vuoi fare


Laddove non ci sia una chiave naturale assolutamente univoca e immutabile,
(ad esempio in una tabella di elementi la chiave 'K' identifica benissimo
il potassio)noi usiamo sempre un id di 22 caratteri univoco basato su uuid.
La ragione per cui non usiamo un seriale è che nel caso si debbano unire i
dati di tabelle provenienti da sistemi diversi la probabilità di avere
duplicati è irrisoria. Nel caso invece di un serial si è costretti a
assegnare nuovamente l'id ai record importati e se l'import riguarda anche 
tabelle in relazione il problema non è banalissimo.
Non credo che in termini di velocità sulle macchine moderne le prestazioni
per accedere ad un btree siano in qualche modo un problema mentre la
trasportabilità dei grappoli di tabelle è un vantaggio notevole.


G



_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a