Weder. Sie würden normalerweise tinyint mit einer Nachschlagetabelle verwenden
-
char(1) wird etwas langsamer sein, da der Vergleich eine Sortierung verwendet
-
Verwirrung:Wenn Sie sich auf mehr als A und P erstrecken
-
Die Verwendung eines Buchstabens schränkt Sie ein, wenn Sie weitere Typen hinzufügen. Siehe letzter Punkt.
-
Jedes System, das ich gesehen habe, hat mehr als einen Client, zB Reporting. A und P müssen in jedem Client-Code in Aktiv und Passiv aufgelöst werden
-
Erweiterbarkeit:Fügen Sie einen weiteren Typ hinzu ("S" für "Suspended") können Sie eine Zeile zu einer Nachschlagetabelle hinzufügen oder eine Menge Code und Einschränkungen ändern. Und Ihren Kundencode auch
-
Wartung:Die Logik befindet sich an 3 Stellen:Datenbankeinschränkung, Datenbankcode und Clientcode. Mit einer Suche und einem Fremdschlüssel kann es sich an einem Ort befinden
-
Enum ist nicht portierbar
Auf der positiven Seite der Verwendung eines einzelnen Buchstabens oder Enum
Hinweis:Es gibt eine verwandte DBA.SE MySQL-Frage zu Enums . Die Empfehlung ist, auch dort eine Nachschlagetabelle zu verwenden.