[Python] Multiple primary key? Era: Red Baron
Simone Federici
s.federici a gmail.com
Dom 28 Giu 2015 11:01:32 CEST
una chiave primaria composta da più colonne, è un DAC
è vero che "alcuni" db supportano where (tuonome, tuocognome) in (select
nome,cognome from anagrafica) ma mica è ANSI standard... e comunque le
performance di ricerca su indici compositi non è la stessa di un indice
numerico.
questo è il primo di mille motivi sul perché non usare una chiave composta
da più colonne: hai dei limiti nell'utilizzo della base dati e le
performance sulle join non sono ottimali.
inoltre c'è il discorso dell'attendibilità dei dati, che però coinvolge
tutte le chiavi, anche quelle singole. Se il dato inserito non è
attendibile all 100% è meglio non costruirci una chiave che spalmi in lungo
e in largo.
e visto che mi è capitato di trovare basi dati con codici fiscali o partite
iva sbagliati, direi che nessun dato inserito da un uomo può definirsi
attendibile.
insomma le chiavi di un db è meglio che non siano accoppiate con il
business.
i vincoli di unicità si fanno con le unique constraint.
punto
:-)
Se scindiamo il discorso meramente tecnico di mettere in relazione entità
diverse da quello che una entità è formata da un certo numero di colonne
che ne formano la sua univocità, vedrete che una cosa è dire Simone è il
figlio di Luciano e anltra cosa è dire Simone di cognome fa Federici, è
nato il... alle ore tot ... il suo codice fiscale etc... tutta roba che
identifica univocamente simone ma che non ci azzecca un H con il fatto che
Simone ha una relazione di parentela con Luciano.
famo a capisse :-)
PS.
ognuno ha le sue best practice, però alcune sono meglio delle altre.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150628/2ea6e16b/attachment.html>
Maggiori informazioni sulla lista
Python