現在、アクティビティの種類に応じて他のテーブルを参照する単一のアクティビティ テーブルがあります。
id | type | user_id | source_id | misc_id | date
タイプ列には、ユーザーが実行したアクティビティの種類 (フォロー、いいね、友達になる、ステータスなど) が示され、ソース ID には、アクションのタイプに関連するテーブル ID が含まれます。
これはユーザー アクティビティ ストリームではうまく機能していますが、唯一の問題は、相対テーブルに存在しなくなった行をどうすればよいかわかりません。
たとえば、ユーザーがステータスを作成してから削除したり、後でデータベースから削除された誰かと友達になったりします。
アクティビティが単一の型に関連している場合は、行を削除する外部キー制約を追加できます。しかし、それは異なるテーブルに関連しているため、他にどうすればこれを行うことができますか?