Không sử dụng cùng một cột cho cả hai khóa ngoại. Điều này đôi khi được gọi là liên kết đa hình và nó phá vỡ các quy tắc về thiết kế cơ sở dữ liệu tốt.
Nó phải là một manh mối rằng đó là một thiết kế tồi, rằng một ràng buộc FOREIGN KEY chỉ hỗ trợ một bảng được tham chiếu. Không có hỗ trợ cho các liên kết đa hình trong SQL chuẩn.
Thay vào đó, hãy tạo hai cột, một cột để tham chiếu đến Người dùng, cột kia để tham chiếu đến SystemProcesses. Một cột trên mỗi bảng được tham chiếu.
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
Nếu không có tham chiếu liên quan cho cột Người dùng hoặc Quy trình hệ thống, hãy sử dụng NULL để cho biết không có giá trị áp dụng.
Bạn có thể muốn xem lại các câu hỏi khác mà tôi đã trả lời về các liên kết đa hình .