Câu hỏi rất hay. Không có lý do cơ bản nào tại sao một ràng buộc tham chiếu không nên tham chiếu thứ gì đó ngoài khóa ứng viên. Thậm chí còn có một cái tên cho những ràng buộc như vậy:Sự phụ thuộc bao gồm. Khóa ngoại chỉ là một loại phụ thuộc bao gồm trong đó mục tiêu của ràng buộc là một khóa ứng viên.
Thật không may, SQL không cung cấp hỗ trợ tốt cho các phụ thuộc bao gồm hoặc thậm chí cho các ràng buộc tham chiếu nói chung. SQL giới hạn cái gọi là ràng buộc FOREIGN KEY để tham chiếu đến các cột của ràng buộc UNIQUE hoặc PRIMARY KEY (mặc dù không nhất thiết phải là khóa ứng viên).
Vì vậy, những gì bạn đưa ra thực sự là một hạn chế đáng ngờ của SQL. Nó không có nghĩa là bạn đang làm bất cứ điều gì quá sai.