sql >> データベース >  >> RDS >> PostgreSQL

主キーのUUIDまたはSEQUENCE?

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



    1. SQL-COALESCEとISNULLの違いは?

    2. 演算子間のSQL

    3. PGpoolのガイド-ヒントと観察:パート3-

    4. 最初の実行時にsqliteデータベースをロードできません