それが1つの方法です。
current_statusフィールドをFKにする必要さえないかもしれません。値を保存しないのはなぜですか?そうしないと、奇妙な循環参照に入る可能性があります。
もう1つの方法は、プロジェクトテーブルとは別にステータスアーカイブを保存することです。ステータスが変更されるたびに、現在のステータスをアーカイブテーブルに挿入し、projects.statusの値を変更します。
それが1つの方法です。
current_statusフィールドをFKにする必要さえないかもしれません。値を保存しないのはなぜですか?そうしないと、奇妙な循環参照に入る可能性があります。
もう1つの方法は、プロジェクトテーブルとは別にステータスアーカイブを保存することです。ステータスが変更されるたびに、現在のステータスをアーカイブテーブルに挿入し、projects.statusの値を変更します。