Tworząc tabelę produkty, dla pola „cena” (kwota z groszami) najlepszy typ danych to:
Źle.
ENUM przechowuje jedną z predefiniowanych wartości tekstowych.Źle.
TINYTEXT przechowuje tekst, a cena to wartość liczbowa.Dobrze.
DECIMAL(10, 2) przechowuje liczby z dokładnie 2 miejscami po przecinku.Źle.
INTEGER przechowuje liczby całkowite - bez groszy.Do przechowywania kwot najlepiej nadaje się typ
DECIMAL (stałoprzecinkowy), bo zapisuje liczby z dokładną, ustaloną liczbą miejsc po przecinku - nie powstają błędy zaokrągleń typowe dla FLOAT/DOUBLE. Zapis DECIMAL(10, 2) oznacza do 10 cyfr łącznie, z czego 2 po przecinku, np. 12345678.99 - idealne dla ceny z groszami. Dlatego dla pola „cena” właściwy jest DECIMAL(10, 2).Pozostałe typy nie nadają się do dokładnej kwoty.
ENUM pozwala wybrać jedną z wcześniej zdefiniowanych wartości tekstowych - nie służy do liczb ani cen. INTEGER przechowuje wyłącznie liczby całkowite, więc nie zapisze groszy (części po przecinku). TINYTEXT to typ tekstowy - kwota zapisana jako tekst utrudniałaby obliczenia i sortowanie po wartości. Dokładną cenę z groszami przechowuje DECIMAL(10, 2), dlatego ta odpowiedź jest poprawna.