Jeśli dobrze to rozumiem, BOOLEAN zawsze używa 1 bajtu na kolumnę, ale BIT (n) użyje tylko kilku bajtów, które są potrzebne do utrzymania podanej liczby bitów.
Tak więc BIT może zaoszczędzić trochę miejsca, ale BOOLEAN jest łatwiejszy w obsłudze, jeśli potrzebujesz zapytać o nie za pomocą SQL.
Gdybym miał zestaw flag, które były rozumiane przez aplikację i przechowywane w jednym polu w aplikacji, wtedy szukałbym użycia BIT (n). Jednak gdybym miał kolumny, które wymagałyby zapytania z SQL, użyłbym BOOLEAN.
Przykładem może być aplikacja, która używa flag do rejestrowania, w których tygodniach zdarzenie powinno się uruchamiać, z odrobiną tygodniowo, wynoszącą 1, jeśli zdarzenie działa w danym tygodniu. Jeśli dane miałyby być łatwo wyszukiwane w bazie danych, byłyby „znormalizowane” w dwóch tabelach, ale gdyby dane musiały być tylko przechowywane w bazie danych, najlepiej przechowywać je w formie, w której aplikacja je wykorzystuje w.