Pole tabeli „czyWypozyczona” może przyjmować tylko wartości true lub false. Który typ danych jest dla niego najlepszy?
Źle.
CHAR przechowuje znaki o stałej długości - nadmiarowy dla dwóch stanów.Dobrze.
BOOLEAN przechowuje dokładnie dwie wartości: prawda/fałsz.Źle.
DOUBLE to typ liczbowy zmiennoprzecinkowy, nieadekwatny do true/false.Źle.
VARCHAR(5) przechowuje tekst - marnuje miejsce i dopuszcza błędne wartości.Pole przyjmujące jedynie dwie wartości - prawda albo fałsz - najlepiej opisać typem logicznym
BOOLEAN. Jest najbardziej oszczędny i czytelny, a baza pilnuje, że dopuszczalne są tylko dwa stany. W MySQL BOOLEAN jest aliasem dla TINYINT(1) (0/1), gdzie 0 to fałsz, a każda wartość różna od zera - prawda. Dla flag typu „czyWypożyczona”, „aktywny”, „zatwierdzony” to naturalny wybór. Dlatego najlepszym typem jest BOOLEAN.Pozostałe typy są nieadekwatne do dwustanowej flagi.
CHAR przechowuje znaki o stałej długości - użyty do „T”/„N” działałby, ale jest mniej czytelny i nie ogranicza wartości do dwóch stanów. DOUBLE to typ liczbowy zmiennoprzecinkowy, przeznaczony do liczb rzeczywistych, więc do prawda/fałsz zupełnie nie pasuje. VARCHAR(5) trzyma tekst (np. „true”) - zajmuje więcej miejsca i dopuszcza dowolne, także błędne, wpisy. Dwie wartości logiczne najlepiej odda BOOLEAN, dlatego ta odpowiedź jest poprawna.