Boa tarde Weverton,
Costumo fazer o seguinte: se o código é algo conhecido do usuário, então ele
de certa forma já faz parte do domínio e deve ser mantido, independente da
plataforma da aplicação (web, windows, mobile, dos) e independente da
tecnologia (.Net, Java, C, C++, ...).
Em um sistema que estou trabalhando, tenho uma situação parecida: o usuário
se "acostumou" com alguns códigos (cliente, produto, fornecedor, ...) por
herança das versões mais antigas do software. Neste caso, colocamos isso
para o usuário digitar (na grande maioria dos casos o usuário digita apenas
na consulta. Nas inclusões o sistema gera o código).
Agora, não necessariamente esse código que o usuário já conhece e está
familiarizado representa as chaves da sua tabela. Uma outra abordagem seria,
por exemplo, manter esse código (aproveitando a experiência do usuário) e
criar um número seqüencial para cada chave primária.
[]'s,
Renato Duran