Geralmente, em uma tabela que não possui chave natural, ainda é útil que os usuários possam ter um identificador gerado exclusivamente. Se a tabela tiver uma chave primária substituta (e, nesse caso, você certamente esperaria), essa chave deve ser exposta ao usuário ou outro campo deve ser usado para esse fim?
Um motivo para não expor a chave substituta é que agora você não pode executar operações que preservem o relacionamento entre os registros, mas altere os valores da chave, como certos tipos de exclusão / reinserção, muitos métodos de cópia de dados de um banco de dados para outro, etc.
A principal vantagem de expor a chave substituta é a simplicidade de usar um campo que você possui de qualquer maneira.
Em que circunstâncias é melhor expor diretamente a chave substituta aos usuários?