古いレコードを 2 番目のテーブルに移動できるように 2 つのテーブルが必要なので、メイン テーブルを小さく保ちますが、1 つの int プライマリ キーを使用して両方のテーブルにリンクできるようにしたいと考えています。
例: (実際のテーブルにあるものからこの例を単純化しました) セッションのトレースを保持していて、期限切れのセッションを Expired_Sessions テーブルに移動したいのですが、セッションを Login_Attempts テーブルのようなログ テーブルにもリンクしていますが、そうではありません。それらのテーブルへのリンクを壊したくありません。
Sessions
--------------------
PKey | int
Session_ID | varchar
Expired_Sessions
--------------------
PKey | int
Session_ID | varchar
Login_Attempts
--------------------
Session_FKey | int
Count | int
これを行うには2つの方法がうまくいくと思いましたが、これを行うためのより良い方法があるはずだと思いましたか?
1: sys_constants テーブルに主キー カウンターを格納し、レコードを追加するたびにインクリメントします。また
2: セッション テーブルの主キーと期限切れセッションの主キーを 3 番目の主キーにリンクする別のテーブルを追加し、3 番目の主キーを使用してログ テーブルにリンクします。