現在、PHP を介してランダムに生成された varchar 文字列をテーブルの一意の識別子として使用していますが、このサイトで調査した後、サイズが小さいため、自動インクリメントの主キー フィールドを一意の識別子として使用する方がよいようです。整数の速度差に加えて、ランダムな文字列の生成について心配する必要はありません。
ただし、私の友人は、インデックスが失われた場合、または何らかの理由でインクリメント番号がリセットされた場合にインクリメント番号が 0 に変更される可能性があるため、これを行うことについて警告しています。さらに、データベースのコピーを作成する場合。テスト用で COPY SELECT が使用されている場合、インデックスは作成されず、自動インクリメントは失われます。
これらの懸念は有効ですか?変更するだけでいいですか?:)
編集 1
自動インクリメントフィールドを主キーとして使用し、それを他のテーブルの外部キーとして使用するので、何らかの理由でメインテーブルの自動インクリメント主キーが変更された場合、他のテーブルの外部キーが無効になることが懸念されます