Sử dụng uuid
. PostgreSQL có kiểu gốc là có lý do.
Nó lưu trữ uuid nội bộ dưới dạng trường nhị phân 128 bit. Các tùy chọn được đề xuất khác của bạn lưu trữ nó dưới dạng hệ thập lục phân, so sánh rất kém hiệu quả.
Không chỉ vậy, mà còn:
-
uuid
sắp xếp theo từng byte đơn giản để sắp xếp.text
,char
vàvarchar
xem xét các đối chiếu và ngôn ngữ, điều này là vô nghĩa đối với một uuid. -
Chỉ có một bản trình bày hợp quy của một
uuid
. Điều này cũng không đúng đối với văn bản, vv; bạn phải xem xét chữ hoa và chữ thường, có hay không có{...-...}
s, v.v.
Không có câu hỏi nào cả. Sử dụng uuid
.
Loại duy nhất có ý nghĩa khác là bytea
, ít nhất có thể được sử dụng để lưu trữ trực tiếp 16 byte của uuid. Đây là những gì tôi sẽ làm nếu tôi đang sử dụng các hệ thống không thể đối phó với các kiểu dữ liệu bên ngoài tập hợp cơ bản, giống như một ORM thực sự ngu ngốc.