Hola!!
Veréis me he encontrado con el siguiente problema en la implementación de mi BD. Necesito guardar la información de 1000 clientes, la clave primaria de la BD será al nombre y los apellidos de los clientes. Pero a parte me gustaría tener un campo que fuera único para cada cliente, numérico y de tres dígitos (000...999). El problema es que no sé como implementarlo en SQL de forma que sean únicos estos números... He probado con tener un número base e incrementarlo cada vez, pero si se borrara algún cliente, por ej. el 021, este número ya no se podría utilizar, pues simplemente lo que se hace es incrementar un número base de forma que sea menor que 999... No sé si me explico...
He pensado en otra posible solución: tener una tabla más en la BD con un campo ID como clave primaria que sea numérico (000...999) y otro que indique si está siendo usado de tipo lógico (true, false; o en su defecto 0,1). Habría una relación 1,N de la tabla nueva a la del cliente de forma que cada cliente tuviera un único ID de dicha tabla. Al insertar cada cliente, buscaría el primer valor ID de la tabla nueva que esté libre y se lo asignaría (esto lo podría hacer con un procedimiento almacenado, por ej.)
Es una posible solución... pero no creo que sea la mejor...
¡¡Haber si me podéis sugerir una solución mejor!! Muchas gracias, saludos.