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.