En sequence
i PostgreSQL gör exakt samma sak som AUTOINCREMENT
i MySQL. En sequence
är effektivare än en uuid
eftersom det är 8 byte istället för 16 för uuid
. Du kan använda en uuid
som en primärnyckel, precis som de flesta andra datatyper.
Jag ser dock inte hur detta relaterar till maskering av ett användar-ID. Om du vill maskera en viss användares ID från andra användare bör du noggrant hantera tabellprivilegierna och/eller hasha ID:t med - till exempel - md5()
.
Om du vill skydda en tabell med användardata från snokande hackare som försöker gissa andra ID:n, måste uuid
typ är ett utmärkt val. Paketet uuid-ossp
har flera smaker. Version 4 är då det bästa valet eftersom den har 122 slumpmässiga bitar (de övriga 6 används för identifiering av versionen). Du kan skapa en primärnyckel så här:
id uuid PRIMARY KEY DEFAULT uuid_generate_v4()
och då behöver du aldrig oroa dig för det längre.
PostgreSQL 13+
Du kan nu använda den inbyggda funktionen gen_random_uuid()
för att få en version 4 slumpmässig UUID.