uuidを使用する 。 PostgreSQLには理由からネイティブタイプがあります。
これは、uuidを128ビットのバイナリフィールドとして内部に格納します。他の提案されたオプションはそれを16進数として保存しますが、これは比較すると非常に非効率的です。
それだけでなく、:
-
uuid順序付けのために単純なバイト単位のソートを行います。テキストコード> 、charおよびvarchar照合とロケールを検討してください。これは、uuidには無意味です。 -
uuidの正規表現は1つだけです。 。同じことはテキストなどには当てはまりません。大文字と小文字の16進数、{...-...}の有無を考慮する必要があります。 sなど
疑問の余地はありません。 uuidを使用する 。
意味のある他のタイプはbyteaだけです。 、少なくともuuidの16バイトを直接格納するために使用できます。これは、ある種の本当にばかげたORMのように、基本セット以外のデータ型を処理できないシステムを使用していた場合に行うことです。