Er is niets mis met het gebruik van een CHAR of VARCHAR als primaire sleutel.
Natuurlijk zal het in veel gevallen iets meer ruimte in beslag nemen dan een INT, maar er zijn veel gevallen waarin dit de meest logische keuze is en zelfs het aantal kolommen dat u nodig heeft kan verminderen, waardoor de efficiëntie wordt verbeterd door de noodzaak om een apart ID-veld.
Landcodes of staatsafkortingen hebben bijvoorbeeld al gestandaardiseerde tekencodes en dit zou een goede reden zijn om een op tekens gebaseerde primaire sleutel te gebruiken in plaats van voor elk daarvan een willekeurig geheel getal-ID te maken.