![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 238 Pomógł: 1 Dołączył: 27.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 04:21 |