Sklep internetowy korzysta z tabeli faktury. Podczas tworzenia faktury nie zawsze pole dataPlatnosci jest wypełniane. Aby to naprawić, na koniec dnia należy wpisać aktualną datę do wierszy, w których to pole jest puste (niewypełnione). Można w tym celu posłużyć się kwerendą
Odpowiedzi
Informacja zwrotna
Podana odpowiedź jest prawidłowa, ponieważ kwerenda UPDATE faktury SET dataPlatnosci=CURDATE() WHERE dataPlatnosci IS NULL skutecznie aktualizuje pole dataPlatnosci w tabeli faktury, przypisując mu aktualną datę tylko wtedy, gdy to pole jest puste. Użycie funkcji CURDATE() zwraca bieżącą datę, co jest standardową praktyką przy wypełnianiu dat w bazach danych. W kontekście programowania SQL, ważne jest, aby nie marnować zasobów na aktualizację wierszy, które już posiadają poprawną datę. Dodatkowo, stosując warunek IS NULL, unikamy błędów związanych z porównywaniem dat ze specjalnymi wartościami, takimi jak '0000-00-00', co może prowadzić do niejednoznaczności w interpretacji danych. Tego rodzaju podejście jest zgodne z zasadami normalizacji baz danych, gdzie dąży się do minimalizacji redundancji i utrzymania spójności danych. Z perspektywy dobrych praktyk, zawsze warto korzystać z funkcji datowych, które są wbudowane w bazę danych, aby zapewnić, że wprowadzane wartości są aktualne i zgodne z kontekstem aplikacji.
Wybór innych opcji jest nieprawidłowy z kilku powodów. Kwerenda, która ustawia dataPlatnosci na CURTIME() w wierszach gdzie id = 3, nie ma związku z brakiem daty płatności, ponieważ odnosi się do konkretnego rekordu, co ogranicza jej zastosowanie tylko do jednego wiersza. Ponadto użycie CURTIME() zamiast CURDATE() jest błędne, ponieważ pierwsza funkcja zwraca czas, a nie datę, co w kontekście faktur jest nieadekwatne, gdyż powinny one zawierać datę płatności, a nie tylko czas. Kolejna niepoprawna odpowiedź polega na aktualizacji dat w wierszach, gdzie dataPlatnosci IS NOT NULL, co prowadzi do nadpisywania istniejących wartości, a więc do utraty cennych informacji. Tego rodzaju podejście jest sprzeczne z zasadą ochrony danych i prowadzi do problemów z audytem i zgodnością. Ostatnia opcja, która ustawia datę na '0000-00-00', wprowadza niepoprawne wartości, co może skutkować błędami w późniejszym przetwarzaniu danych. Użycie wartości '0000-00-00' jako wskaźnika na brak daty płatności jest niezalecane i może prowadzić do niejasności w interpretacji danych. Powinno się raczej stosować NULL jako reprezentację braku danych, co jest standardowym podejściem w SQL. Wybierając błędne kwerendy, nie tylko ograniczamy funkcjonalność aplikacji, ale również naruszamy zasady poprawnego zarządzania danymi.