sql >> Databasteknik >  >> RDS >> PostgreSQL

UUID eller SEQUENCE för primärnyckel?

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.



  1. Hur kan jag lösa ORA-00911:fel med ogiltiga tecken?

  2. Hur man släpper en begränsning i SQL Server (T-SQL)

  3. Sqlplus-inloggningsfel vid användning av bash-variabler:SP2-0306:Ogiltigt alternativ

  4. Hur man konverterar gemener till versaler i MySQL