Si su columna de nombre cambiará, no es realmente un buen candidato para una clave principal. Una clave principal debe definir una única fila de una tabla. Si se puede cambiar, realmente no lo está haciendo. Sin saber más detalles acerca de su sistema no puedo decirlo, pero este podría ser un buen momento para una clave sustituta.
También voy a agregar esto con la esperanza de disipar los mitos del uso de números enteros de incremento automático para todas sus claves principales. NO es siempre una ganancia de rendimiento el usarlos. De hecho, con bastante frecuencia es exactamente lo contrario. Si tiene una columna de incremento automático, significa que cada INSERT en el sistema ahora tiene la sobrecarga adicional de generar un nuevo valor.
Además, como Mark señala, con ID sustitutos en todas sus tablas si tiene una cadena de tablas relacionadas, para pasar de una a otra es posible que tenga que unir todas esas tablas para recorrerlas. Con claves primarias naturales que generalmente no es el caso. Unir 6 tablas con números enteros suele ser más lento que unir 2 tablas con una cadena.
También suele perder la posibilidad de realizar operaciones basadas en conjuntos cuando tiene identificadores de autoevaluo en todas sus tablas.En lugar de insertar 1000 filas en una tabla principal, luego insertar 5000 filas en una tabla secundaria, ahora tiene que insertar las filas principales de a una por vez en un cursor u otro bucle solo para obtener las ID generadas para que pueda asignarlas a los niños relacionados. He visto un proceso de 30 segundos convertido en un proceso de 20 minutos porque alguien insistió en usar ID de auto incremento en todas las tablas de una base de datos.
Finalmente (al menos por razones que menciono aquí - sin duda hay otras), el uso de identificadores de auto incremento en todas sus tablas promueve un diseño deficiente. Cuando el diseñador ya no tiene que pensar en qué puede ser una clave natural para una tabla, generalmente resulta en duplicados erróneos que terminan en los datos. Puede intentar evitar el problema con índices únicos, pero en mi experiencia los desarrolladores y diseñadores no pasan por ese esfuerzo extra y después de un año de usar su nuevo sistema descubren que los datos son un desastre porque la base de datos no tenía restricciones apropiadas en los datos a través de claves naturales.
Definitivamente hay un tiempo para usar claves sustitutivas, pero usarlas a ciegas en todas las tablas es casi siempre un error.
una excepción comúnmente encontrada es para datos de "sistema". es decir, cosas que está definiendo usted mismo campos de estado, etc. – ShoeLace