Brug ikke den samme kolonne for begge fremmednøgler. Dette kaldes nogle gange polymorfe associationer , og det bryder reglerne for godt databasedesign.
Det burde være et fingerpeg om, at det er et dårligt design, at en FOREIGN KEY-begrænsning kun understøtter én refereret tabel. Der er ingen understøttelse af polymorfe associationer i standard SQL.
Opret i stedet to kolonner, en til en reference til brugere, den anden til en reference til systemprocesser. Én kolonne pr. refereret tabel.
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
Hvis der ikke er nogen relevant reference for hverken kolonnen Brugere eller Systemprocesser, skal du bruge NULL for at angive, at der ikke er nogen relevant værdi.
Du vil muligvis gerne gennemgå andre spørgsmål, jeg har besvaret om polymorfe associationer .