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

主キーと代理キーの違いは何ですか?

    主キーは、テーブル内のレコードを一意に識別するために選択する、テーブル内の一意のキーです。レコードを更新または削除する必要がある場合は、レコードを一意に識別する方法を知る必要があるため、すべてのテーブルに主キーが必要です。

    代理キーは、人為的に生成されたキーです。これらは、レコードに本質的に自然キーがない場合に役立ちます (Person など)。 同じ日付に生まれた 2 人の人物が同じ名前を持つ可能性があるため、またはログに記録される可能性があるため (同じタイムスタンプを持つような 2 つのイベントが発生する可能性があるため)。ほとんどの場合、これらは自動的にインクリメントされるフィールドの整数として実装されるか、レコードごとに自動的に生成される GUID として実装されます。 ID 番号はほとんどの場合、代理キーです。

    ただし、主キーとは異なり、すべてのテーブルに代理キーが必要なわけではありません。アメリカの州をリストした表がある場合、それらの州の ID 番号は実際には必要ありません。州の略語を主キー コードとして使用できます。

    代理キーの主な利点は、一意であることを簡単に保証できることです。主な欠点は、意味がないことです。たとえば、「28」がウィスコンシン州であるという意味はありませんが、Address テーブルの State 列に「WI」が表示されている場合、どの州がどの州であるかを調べなくても、どの州について話しているかがわかります。



    1. Oracle Long Raw 問題

    2. p:dataTableによる行番号付け

    3. DatabaseError:タイプ文字が変化するには値が長すぎます(100)

    4. mysqldumpによって二重にエンコードされたデータベースを復元する方法