Uma
sequence no PostgreSQL faz exatamente o mesmo que AUTOINCREMENT em MySQL. Uma sequence é mais eficiente que um uuid porque tem 8 bytes em vez de 16 para o uuid . Você pode usar um uuid como chave primária, assim como a maioria dos outros tipos de dados. No entanto, não vejo como isso se relaciona ao mascaramento de um ID de usuário. Se você quiser mascarar o ID de um determinado usuário de outros usuários, você deve gerenciar cuidadosamente os privilégios da tabela e/ou fazer o hash do ID usando - por exemplo -
md5() . Se você deseja proteger uma tabela com dados do usuário de hackers bisbilhoteiros que estão tentando adivinhar outros IDs, então o
uuid tipo é uma excelente escolha. Pacote uuid-ossp tem vários sabores. A versão 4 é então a melhor escolha, pois possui 122 bits aleatórios (os outros 6 são usados para identificação da versão). Você pode criar uma chave primária assim:id uuid PRIMARY KEY DEFAULT uuid_generate_v4()
e então você nunca mais terá que se preocupar com isso.
PostgreSQL 13+
Agora você pode usar a função interna
gen_random_uuid() para obter um UUID aleatório da versão 4.