Najbardziej akademicko poprawne byłoby zrobienie osobnej tabeli-słownika i połączenie jej relacją

Ja tam od zawsze używam zwykłego CHAR(1) - K/M i po sprawie. Fakt, że w skryptach lepiej na wszelki wypadek stosować strtoupper() przy porównaniach, ale nie jest to jakaś duża niedogodność.
I w razie jeśli trzeba umieścić trochę więcej możliwości, to też daje radę (G/L... trochę więcej problemu z bi- i trans- żeby odróżnić - można np. B, C oraz T, S)