Hola a todos, llego tarde a la discusión, pero aquí aporto mi granito de
arena.
Usen un ID generado por ustedes para que la aplicación identifique al
usuario, y el "documento de identidad" usenlo como un campo más, un
atributo más, del usuario; y con una buena indexación pueden correr
todas las búsquedas sobre ese campo, así no dependen del ID del
usuario. Espero haya quedado claro.
Y una justificación a lo anterior... si usan el "documento de
identidad" como PK, si el sistema tiene varias relaciones entre
tablas, utilizando esa PK, y el día de mañana el cliente (vuestro
usuario) desea cambiar su documento por otro, el dolor de cabeza que
les va a traer el cambiar todas las PK va a ser monumental.
Así que si quieren ahorrarse un problema, usen una PK controlada por
ustedes; todo lo que pueda proveer un usuario, son solo datos del
usuario, bajo ningún concepto pueden influenciar al uso de la
aplicación (salvo casos como sharding en base a datos del usuario).
Saludos a todos y en especial a los compatriotas.
--
Andrés G. Montañez
Zend Certified Engineer
Montevideo - Uruguay