Criando IDs para referencialidade singularidade e URL
Pergunta
Eu preciso criar objetos e torná-los disponíveis na web. Da mesma forma para stackoverflow, eu tenho algo parecido.
http://stackoverflow.com/users/78374
No entanto, no meu caso o ID do objeto que criar deve ser único, por isso estou pensando em um UUID, levando a uma URL como
http://example.com/users/{8e931066-7d87-4f2b-a3b5-608c4c9a9083}
porque mais tarde eu vou ter que mesclar bancos de dados diferentes juntos, e eu não quero ter fundir questões.
Esta é uma prática aceita? Quais são as alternativas?
Solução
Se é apenas uma questão de fundir bases de dados, dando a cada db um identificador único e, em seguida, combinar isso com a PK auto-incremento daria ids únicos para cada objeto que você pode usar e não se preocupar com a fusão questões.
Outras dicas
Não há nenhum problema nisso. Hotmail faz isso.
Se a fusão deve ser 100% sem costura, em seguida, um UUID é provavelmente a sua melhor aposta. Se você estiver olhando para gerar mais URL do humano-amigável, você pode considerar o uso de um único "Nome da conta" que o usuário pode definir. Isso seria potencialmente criar conflitos se fundir bases de dados, mas eles podem ser superados.
Concordo que esta é uma prática aceitável, pois mantém o ID de usuário único quando usá-lo durante vários bancos de dados e aplicações.
Eu uso a mesma prática em meu bloco de aplicação cache. O bloco de aplicação cache gera um GUID quando um item é armazenado em cache e os usos do aplicativo que GUID para recuperar o item do cache.