教育中(約4年前)に行ったデータベース講座では、文字列を初等教材として使用しないことをお勧めしますキーのデータ型。
SQLの主キーの文字の変化するデータ型を選択することの長所と短所、および上記の前提条件を誰かが教えてもらえますか?本当ですか?
N.B .:(PostgreSQLデータベースを使用しています)。私はまた、別のテーブルからそのようなテーブルを参照する必要がある状況にも対処しています。つまり、外部キーを文字可変データ型に配置します。それも考慮に入れてください。
主データフィールドとして文字データ型を選択する利点は、表示できるデータを選択できることです。例として、ユーザーテーブルのキーフィールドとして電子メールアドレスを持つことができます。カラムを追加する必要がなくなります。別の利点は、他の複数のテーブルのインデックスを保持する共通のデータテーブル(FINANCE、CONTACT、およびADMINテーブルへの外部参照を持つNOTESテーブルと考える)がある場合、これがどのテーブルからのものか(たとえば、FINANCEテーブル)を簡単に知ることができることです。 F00001のインデックスがあり、CONTACTテーブルにはC00001などのインデックスがあります)。私はそのようなアプローチに反対しているので、この返信では不利な点がより大きくなると思います。
欠点は次のとおりです。
あなたの場合でも、数値インデックスに外部キーを置くことができるので、なぜそれをvarchar型に強制する必要があるのかわかりません。数値フィールドでの検索とフィルタリングは、サーバーがデータを最初に変換する必要があるため、理論的にはテキストフィールドより高速です。一般的に、クラスター化されていない数値の主キーがあり、大量のフィルター処理を行うデータ列にクラスター化キーを作成します。
これらはSQLを作成するときの一般的な標準ですが、ベンチマークに関しては、整数の列よりもvarchar列の結合とフィルタリングが少し遅いことがわかります。主キーが変更されない限り、問題はありません。