Siempre he tratado de tener una clave primaria entera en una tabla pase lo que pase. Pero ahora estoy cuestionando si esto siempre es necesario.índices de texto frente a índices enteros en mysql
Digamos que tengo una tabla de productos y cada producto tiene un número SKU global único, que sería una cadena de, digamos, 8-16 caracteres. ¿Por qué no hacer esto el PK? Normalmente haría de este campo un índice único, pero luego tendría un campo int de incremento automático como PK, ya que supuse que sería más rápido, más fácil de mantener y me permitiría hacer cosas como obtener los últimos 5 registros añadidos con facilidad.
Pero en términos de optimización, asumiendo que solo coincidiría con el campo de texto completo y luego haciendo consultas de concordancia de texto (por ejemplo, como %%) pueden pensar en alguna razón para no usar una clave primaria basada en texto, lo más probable es que varchar()?
Saludos, imanc
posible duplicado de http://stackoverflow.com/questions/63090/surrogate-vs-natural-business-keys – outis