Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> aktualizacja danych w bazie - filozofia dzialania
maciu
post
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?
Go to the top of the page
+Quote Post
nevt
post
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 04:21