両方の外部キーに同じ列を使用しないでください。これは、ポリモーフィックアソシエーションと呼ばれることもあります。 、そしてそれは優れたデータベース設計のルールを破ります。
これは、設計が不適切であり、FOREIGNKEY制約が1つの参照テーブルのみをサポートしていることの手がかりになるはずです。標準SQLではポリモーフィックアソシエーションはサポートされていません。
代わりに、2つの列を作成します。1つはユーザーへの参照用で、もう1つはSystemProcessesへの参照用です。参照されるテーブルごとに1つの列。
Logs
uid (INT) UsersID (INT) SystemProcessesID (INT) Action
1 2 NULL Jane Doe did this
2 1 NULL John Doe did that
3 1 1 Hitman just killed John Doe
Users列またはSystemProcesses列のいずれにも関連する参照がない場合は、NULLを使用して、該当する値がないことを示します。
ポリモーフィックアソシエーションについて回答したその他の質問を確認してください。 。