Външният ключ трябва да е насочен към първичен ключ или уникално ограничение. Нормално е да препращате към първичния ключ, тъй като обикновено искате да препращате към отделен ред в друга таблица, а първичният ключ е идентификаторът на ред от таблица.
От техническа гледна точка няма значение дали външният ключ препраща към първичния ключ или към друго уникално ограничение, защото в PostgreSQL и двете се изпълняват по един и същи начин, като се използва уникален индекс.
Що се отнася до вашите конкретни примери, няма нищо лошо да имате уникалния size
колона от vehicle_size
бъдете цел на чужд ключ, въпреки че възниква въпросът защо не сте направили size
първичния ключ и пропуснете id
колона като цяло. Не е необходимо всяка таблица да има id
колона, която е автоматично генерираният цифров първичен ключ, с изключение на това, че може да има ORM и друг софтуер, който очаква това.