En främmande nyckel måste riktas mot en primärnyckel eller unik begränsning. Det är normalt att referera till primärnyckeln, eftersom du vanligtvis vill referera till en enskild rad i en annan tabell, och primärnyckeln är identifieraren för en tabellrad.
Ur teknisk synvinkel spelar det ingen roll om en främmande nyckel refererar till primärnyckeln eller en annan unik restriktion, eftersom båda i PostgreSQL implementeras på samma sätt, med hjälp av ett unikt index.
När det gäller dina konkreta exempel är det inget fel med att ha den unika size
kolumn för vehicle_size
vara målet för en främmande nyckel, även om det väcker frågan varför du inte gjorde size
primärnyckeln och utelämna id
kolumn helt och hållet. Det finns inget behov av att varje tabell har ett id
kolumn som är den automatiskt genererade numeriska primärnyckeln, förutom att det kan finnas ORM och annan programvara som förväntar sig det.