Żaden. Zwykle używałbyś tinyint z tabelą przeglądową
-
char(1) będzie nieco wolniejsze, ponieważ porównanie wykorzystuje sortowanie
-
zamieszanie:w miarę rozszerzania się do więcej niż A i P
-
użycie litery ogranicza Cię w miarę dodawania kolejnych typów. Zobacz ostatni punkt.
-
każdy system, który widziałem, ma więcej niż jednego klienta, np. raportowanie. A i P muszą być rozwiązane na Aktywne i Pasywne dla każdego kodu klienta
-
rozszerzalność:dodaj jeszcze jeden typ ("S" dla "Zawieszony"), możesz jeden wiersz do tabeli przeglądowej lub zmienić dużo kodu i ograniczeń. Twój kod klienta też
-
utrzymanie:logika jest w 3 miejscach:ograniczenie bazy danych, kod bazy danych i kod klienta. Dzięki odnośnikowi i kluczowi obcemu może znajdować się w jednym miejscu
-
Enum nie jest przenośny
Zaletą używania pojedynczej litery lub Enum
Uwaga:istnieje powiązane pytanie MySQL dotyczące Enums DBA.SE . Zaleca się użycie tam również tabeli przeglądowej.