作業指示書/チケットを追跡および処理するアプリケーションに取り組んでいます。各チケットは、MySQL の変更をカスケードする外部キーを介して、チケットを作成/所有するユーザーにリンクされます。ユーザーが何らかの理由でアカウントを削除したとしても、チケットと基本情報を記録しておきたいと思うことは明らかです。
これを実現する最初の方法は、ユーザーがアクティブか非アクティブか、つまり削除されたかどうかを示す列をユーザー テーブルに作成することです。そうすれば、アカウントを閉鎖/削除すると、この値が反転するだけで、アプリにアクセスできなくなります。
私が持っていたもう1つのアイデアは、アカウントが削除されたときに、ユーザーレコードを削除されたユーザーテーブルに移動することでした. この方法では、users テーブルのパフォーマンスを最高の状態に保つことができます。これは、テーブルが大きくなると非常に大きな問題になる可能性がありますが、レコードを移動するための追加のクエリが追加されます。
明らかにこれの一部は好みかもしれませんが、私はパフォーマンスの側面に興味があります. 基本的に問題は、選択クエリと挿入クエリを比較する方法と、挿入クエリ (削除されたユーザー テーブルへのレコードの移動) をミックスに追加することにより、全体的なパフォーマンスがどの時点で向上するかということです。