Pertanyaan yang sangat bagus. Tidak ada alasan mendasar mengapa batasan referensial tidak boleh merujuk sesuatu selain kunci kandidat. Bahkan ada nama untuk kendala tersebut:Ketergantungan Inklusi. Kunci asing hanyalah jenis dependensi inklusi di mana target kendala kebetulan menjadi kunci kandidat.
Sayangnya SQL tidak memberikan dukungan yang baik untuk dependensi inklusi atau bahkan untuk batasan referensial secara umum. SQL membatasi apa yang disebut batasan KUNCI ASING untuk mereferensikan kolom batasan KUNCI UNIK atau KUNCI UTAMA (meskipun tidak harus kunci kandidat).
Jadi apa yang Anda hadapi adalah batasan SQL yang meragukan. Itu tidak berarti Anda melakukan sesuatu yang sangat salah.