Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%)
|
Mam następujący problem. Mam skrypt, który pobiera z bazy rekordy (około 50) i wyświetla je wiersz pod wierszem. Po lewej stronie jest link - po jego naciśnięciu strona się przeładowuje i jest formularz edycji. Jak damy zapisz, dane się aktualizują w bazie i jesteśmy przekierowywani na stronę główną (pobierane jest znowu 50 rekordów i wyświetlane wiersz pod wierszem). Muszę zrobić bez przeładowywania (żeby nie pobierać za każdym razem 50 rekordów). Do głowy wpadło mi takie rozwiązanie:
Pobierać z bazy do tablicy dane tylko jeden raz (przy pierwszym ładowaniu strony). A przy edycji wybranego wiersza, update do bazy i edytowanych danych w tablicy a następnie powrót na stronę główną i wyświetlanie danych już z tablicy (bez ponownego pobierania z bazy). Problem w tym, że nie wiem jak najlepiej taką tablicę przechowywać, żeby jej nie stracić przy przejściu na inną stronę? Umieścić w sesji danego użytkownika? Inny problem to jeszcze będę musiał sprawdzić czy inny użytkownik czegoś nie edytował a jeśli tak to pobranie tych nowych (zmienionych) danych z bazy.. Czy to dobry pomysł? Ten post edytował J4r0d 27.07.2006, 12:46:17 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. |
1. Możesz trzymać dane zserializowane np w sesji (nikoniecznie jest to jednak bezpieczne)
2. Jełśi chodzi o ewentualne zmiany w bazie, to utwórz sobie na dysku plik o unikalnej nazwie. Pamietaj go w sesji użytkownika. Za każdym razem, gdy ktoś coś zmieni w bazie - niech jednocześnie zmienia nazwe pliku. Ty z kolei sprawdzaj, czy nazwa pliku w sesji uzytkownika jest taka sama jak tego na dysku. Jeśli nie, to pobieraj dane. Może być? Pozdrawiam |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%)
|
1. Możesz trzymać dane zserializowane np w sesji (nikoniecznie jest to jednak bezpieczne) Mógłbyś podpowiedzieć jak wykonać taką serializację? Weźmy pod uwagę że jeden wiersz może zawierać do 500 znaków tekstowych. Czy to nie obciążą? 2. Jełśi chodzi o ewentualne zmiany w bazie, to utwórz sobie na dysku plik o unikalnej nazwie. Pamietaj go w sesji użytkownika. Za każdym razem, gdy ktoś coś zmieni w bazie - niech jednocześnie zmienia nazwe pliku. Ty z kolei sprawdzaj, czy nazwa pliku w sesji uzytkownika jest taka sama jak tego na dysku. Jeśli nie, to pobieraj dane. Czy nie lepiej dodać do bazy pole update które będzie przyjmowało wartość true dla wiersza edytowanego i false dla wiersza, którego nie zmieniano? Pozatym edycja będzie odbywać się przez kilku użytkowników.. I chciałbym, żeby pobierane były z bazy tylko rekordy zmienione a reszta (tych nie edytowanych) wczytywana z pamięci. Czy to ma sens? Czy algorytm nie będzie na tyle skomplikowany, że bardziej będzie się opłacało wczytywać wszystko za każdym razem? Za każdym razem, gdy ktoś coś zmieni w bazie - niech jednocześnie zmienia nazwe pliku. Ty z kolei sprawdzaj, czy nazwa pliku w sesji uzytkownika jest taka sama jak tego na dysku. Jeśli nie, to pobieraj dane. Nie sprawdzisz czy nazwa pliku jest taka sama. Co najwyżej czy plik istnieje. Ja ostatnio jakis monotematyczne jestem, ale do tego dobrze nadaje sie cache (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zapisujesz tablice do cache'u raz a potem pobierasz juz tylko z cache a nie z bazy. Przy jakiejkolwiek modyfikacji tabeli czyscisz cache, wymuszajac w ten sposob odswierzenie danych. proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole: Temat: Tematyka i zasady panujace na forum Przedszkole Czy trudno jest wykonać cachowanie danych? (zależy mi na nieobiektowości, ponieważ projekt jest pisany strukturalnie i nie chcę mieszać. Pozatym też nie do końca mi o to chodzi. Chciałbym pobierać z bazy tylko te rekordy, które się zmieniły. A resztę z "cachea".. |
|
|
|
J4r0d [php]Ograniczenie zapytań do bazy - buforowanie wyników 27.07.2006, 12:32:30
kossa Moim zdaniem zapytanie na 50 rekordach jeśli serwe... 27.07.2006, 12:39:16
nospor Ja ostatnio jakis monotematyczne jestem, ale do te... 27.07.2006, 12:39:50
Cysiaczek 1. W manualu sa funkcje serialize() i unserialize... 27.07.2006, 12:53:40
nospor CytatCzy trudno jest wykonać cachowanie danych? (z... 27.07.2006, 12:56:50 
J4r0d Cytat(nospor @ 27.07.2006, 11:56 ) Ale je... 27.07.2006, 13:06:34
nospor CytatW sumie masz rację. Ale czy to nie bedzię dłu... 27.07.2006, 13:10:08 
J4r0d Cytat(nospor @ 27.07.2006, 12:10 ) Nie sa... 27.07.2006, 13:56:47
nospor "podoba" mi sie ten kawalek. jest bardzo... 27.07.2006, 14:13:56 
J4r0d Cytat(nospor @ 27.07.2006, 13:13 ) ... 27.07.2006, 22:17:57
cadavre A zwyczajnie JSem? [HTML] pobierz, plaintext <a... 27.07.2006, 23:43:09 
J4r0d Cytat(cadavre @ 27.07.2006, 22:43 ) A zwy... 28.07.2006, 05:21:35
nospor CytatChodzi mi o sytuacje, że dwóch pracownik... 28.07.2006, 08:23:32 
J4r0d Cytat(nospor @ 28.07.2006, 07:23 ) Opisan... 28.07.2006, 11:57:35
nospor CytatTy edytujesz pierwszy a ja drugi. Dajesz zapi... 28.07.2006, 12:15:26
J4r0d Czy przy zapisie do pliku należy blokować do niego... 28.07.2006, 14:51:23 ![]() ![]() |
|
Aktualny czas: 30.12.2025 - 05:41 |