Non utilizzare la stessa colonna per entrambe le chiavi esterne. Questo è talvolta chiamato associazioni polimorfiche , e infrange le regole di una buona progettazione di database.
Dovrebbe essere un indizio che si tratta di una cattiva progettazione, che un vincolo FOREIGN KEY supporta solo una tabella di riferimento. Non c'è supporto per le associazioni polimorfiche in SQL standard.
Creare invece due colonne, una per un riferimento a Users, l'altra per un riferimento a SystemProcesses. Una colonna per tabella referenziata.
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
Se non sono presenti riferimenti rilevanti per la colonna Utenti o Processi di sistema, utilizzare NULL per indicare che non esiste un valore applicabile.
Potresti voler rivedere altre domande a cui ho risposto sulle associazioni polimorfiche .