To jeden ze sposobów na zrobienie tego.
Możesz nawet nie potrzebować pola current_status jako FK; dlaczego po prostu nie przechowywać wartości? W przeciwnym razie możesz dostać się do dziwnych odwołań cyklicznych.
Innym sposobem byłoby przechowywanie archiwum stanu, oddzielnie od tabeli projektów. Za każdym razem, gdy status się zmienia, wstaw aktualny status do tabeli archiwum i zmień wartość projects.status.