データベースのテーブル設計では、「自然キー」と「代理キー」の選択に苦労します。データを「ソフト削除」する場合、自然キーの実装はさらに複雑になります。一部の自然キーはキー値によって引き起こされます。長すぎるか複数の列の組み合わせであるため、テーブルの主キーとしては適していません。より一般的な 2 つの代理キーは、自動インクリメント列とグローバル一意識別列 (GUID) です。次に、自動インクリメントキーについて説明します。
Mysql は、データベースによって提供される自動インクリメント数値フィールドを自動インクリメント主キーとして使用します。
利点:
(1) データベースは自動的に番号付けされ、高速で段階的に増加します。順番に保存されるため、検索に非常に役立ちます。
(2) 数値型で、スペースをほとんど取らず、並べ替えが簡単で、プログラム内での転送に便利です;
(3) 非システム経由でレコードを追加する場合、このフィールドを指定する必要はなく、主キーの重複を心配する必要もありません。
利点について話した後は、欠点について話しましょう。実際、欠点は利点から生まれます。
欠点:
(1) 自動拡張のため、特にシステムが他のシステムと統合されている場合、指定した ID を持つレコードを手動で挿入するのが面倒になります。データをインポートする必要がある場合、元のシステムの ID が主キーと競合しないことを保証するのは困難です (古いシステムもデジタルである場合)。特に、新しいシステムがオンラインになると、古いシステムと新しいシステムが並行して存在し、データベースが異種混合になります。双方向の同期が必要な場合、主キーの自動インクリメントは悪夢になります。
(2 ) システム内 統合または切り替え中に、新旧システムの主キーの数値型が異なる場合、主キーのデータ型が変更され、これにより外部キーに関連付けられた他のテーブルも変更されます。結果も深刻になります;
(3) システムも数値である場合、インポート時に古いデータと新しいデータを区別するために、文字識別子 (「o」、「old」など) を追加することをお勧めします。 ) 古いデータの主キーの前にこれが古いデータであることを示し、その後に自動的に増加する数値が追加されます。
以上がmysqlの自動インクリメントは何に役立ちますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。