Một sequence
trong PostgreSQL hoạt động giống hệt như AUTOINCREMENT
trong MySQL. Một sequence
hiệu quả hơn uuid
vì nó là 8 byte thay vì 16 cho uuid
. Bạn có thể sử dụng uuid
làm khóa chính, giống như hầu hết mọi kiểu dữ liệu khác.
Tuy nhiên, tôi không hiểu điều này liên quan như thế nào đến việc che giấu ID người dùng. Nếu bạn muốn che giấu ID của một người dùng nhất định khỏi những người dùng khác, bạn nên quản lý cẩn thận các đặc quyền của bảng và / hoặc băm ID bằng cách sử dụng - ví dụ - md5()
.
Nếu bạn muốn bảo vệ một bảng có dữ liệu người dùng khỏi các tin tặc rình mò đang cố gắng đoán các ID khác, thì uuid
loại là một sự lựa chọn tuyệt vời. Gói uuid-ossp
có một số hương vị. Khi đó, phiên bản 4 là lựa chọn tốt nhất vì nó có 122 bit ngẫu nhiên (6 bit còn lại được sử dụng để nhận dạng phiên bản). Bạn có thể tạo một khóa chính như sau:
id uuid PRIMARY KEY DEFAULT uuid_generate_v4()
và sau đó bạn sẽ không bao giờ phải lo lắng về điều đó nữa.
PostgreSQL 13+
Bây giờ bạn có thể sử dụng hàm tích hợp sẵn gen_random_uuid()
để nhận UUID ngẫu nhiên phiên bản 4.