Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: aktualizacja danych w bazie - filozofia dzialania
Forum PHP.pl > Forum > Bazy danych > MySQL
maciu
Załóżmy, że są dwie tabele: sklep i godziny otwarcia.
W tabeli godziny otwarcia są pola: id, id_sklep, dzien_start, dzien_koniec, godz_start, godz_koniec. W tabeli godziny_otwarcia może być kilka rekordów dla jednego id_sklep.

Wyświetlamy rekordy dla danego sklepu i możemy je aktualizować, usuwać, dodawać nowe. I teraz gdy aktualizujemy rekordy mamy dwa rozwiązania:
1. usunąć dotychczasowe rekordy i dodać na nowo.
2. sprawdzać czy w rekordzie zaszły jakieś zmiany. Jeśli zaszły to aktualizować, jesli są zupełnie nowe to wstawić nowy rekord, jeśli takich danych nie ma to usunąć rekord.

I teraz pytanie, które rozwiązanie jest lepsze. Rozwiązanie 1 jest prostsze i szybciej się wykona. Ale z drugiej strony gdy będziemy usuwać i wstawiać na nowo rekordy to się porobią "dziury" w bazie.

Jak Wy do tego podchodzicie?
nevt
Twój problem w MySQL najprościej załatwić poleceniem REPLACE, cytuję z manuala:
Cytat
REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted.

powodzenia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.