Всъщност има смисъл, ето защо:
В таблицата всъщност можете да зададете всяка колона като основен ключ. Така че може да бъде цяло число, двойно, низ и т.н. Въпреки че в днешно време използваме предимно цели числа или, по-скоро, низове като първичен ключ в таблица.
Тъй като външният ключ сочи към първичния ключ на друга таблица, ето защо трябва да посочите типа данни на външния ключ. И очевидно трябва да е от същия тип данни.
РЕДАКТИРАНЕ:
Както виждаме, SQL имплементациите са слаби в този случай:те позволяват съвместими типове (INT и BIG INT, Float или DECIMAL и DOUBLE) но на ваш собствен риск . Точно както можем да видим във вашия пример по-долу.
Въпреки това, SQL нормите уточняват, че и двата типа данни трябва да са еднакви. Ако типът данни е символ, те трябва да имат еднаква дължина, в противен случай, ако е цяло число, те трябва да имат същия размер и трябва даи дветете да е подписан или и двете неподписани .
Можете да видите сами тук, глава от книга за MySQL, публикувана през 2003 г.
Надявам се това да отговори на въпроса ви.