シーケンスコード> 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を取得します。