PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

UUID hoặc SEQUENCE cho khóa chính?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL đếm số lần chuỗi con xuất hiện trong văn bản

  2. Làm cách nào để xoay nhật ký PgBouncer trong Linux / Windows?

  3. Nhận kết quả đã nhập từ ActiveRecord thô SQL

  4. Lưu trữ đầu ra của truy vấn đã chọn trong một mảng trong postgres

  5. GUI PostgreSQL nào tốt nhất? So sánh năm 2021