El día 18 de enero de 2011 10:10, Sebastian Moreno
<smoreno.uy@stripped> escribió:
> Jeje te llega a escuchar mi profe de facultad y te mata :P
>
> Estoy de acuerdo que estandarizas, pero también pensá que es una
> redundancia de datos, mientras menos campos/tablas/datos tengas en la
> base mejor.
Aparte de las razones conceptuales y lógicas que se han dado desde un
punto de vista práctico y relacional, que por supuesto también
comparto, hay una razón técnica para no usar identificadores como
carnés o números de seguridad social.
En MySQL, en algunos motores, como InnoDB, es importante mantener la
clave primaria lo más pequeña posible (esto es debido a la
utilización
de "Clustered index"
http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_clustered_index),
y esto sólo se consigue mediante el uso de enteros del menor tamaño
necesario. Sin embargo, muchos de estos identificadores externos
utilizan letras u otros símbolos, y no sólo número (al menos en mi
país). En cualquier caso, e independientemente del motor, comparar 2
enteros suele ser decenas de veces más rápido que comparar 2 cadenas,
aunque se usen índices prefijos.
--
Jaime Crespo
MySQL & Java Instructor
Software Developer
Warp Networks
<http://warp.es>