シーケンスコード> PostgreSQLでは、 AUTOINCREMENTとまったく同じように動作します MySQLで。 シーケンスコード> uuidよりも効率的です uuidの場合は16バイトではなく8バイトであるため 。 uuidを使用できます 他のほとんどのデータ型と同じように、主キーとして。
ただし、これがユーザーIDのマスキングとどのように関連しているかはわかりません。特定のユーザーのIDを他のユーザーからマスクする場合は、テーブルの権限を慎重に管理するか、たとえば md5()を使用してIDをハッシュする必要があります。 。
他のIDを推測しようとするハッカーを詮索することからユーザーデータを含むテーブルを保護したい場合は、 uuid タイプは優れた選択肢です。パッケージuuid-ossp いくつかのフレーバーがあります。バージョン4は、122個のランダムビットがあるため、最良の選択です(他の6つはバージョンの識別に使用されます)。次のような主キーを作成できます:
id uuid PRIMARY KEY DEFAULT uuid_generate_v4()
そうすれば、もう心配する必要はありません。
PostgreSQL 13+
これで、組み込み関数 gen_random_uuid()を使用できます。 バージョン4のランダムなUUIDを取得します。