A menudo, en una tabla que no tiene una clave natural, sigue siendo útil para que los usuarios puedan tener un identificador generado de forma única. Si la tabla tiene una clave primaria sustituta (y, en tal caso, es de esperar), ¿se debe exponer esa clave al usuario o se debe utilizar otro campo para ese propósito?
Una razón para no exponer la clave sustituta es que ahora no puede realizar operaciones que preserven la relación entre los registros, sino cambiar los valores clave, como ciertos tipos de eliminación / reinserción, muchos métodos para copiar datos de una base de datos a otro, etc.
La principal ventaja de exponer la clave sustituta es la simplicidad de usar un campo que tiene de todos modos.
¿En qué circunstancias es mejor exponer directamente la clave sustituta a los usuarios?