Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] ilosc zmiennych sesyjnych...
Forum PHP.pl > Forum > Przedszkole
Gość_żaba_*
witam

nurtuje mnie jeden problem, a mianowicie

mam zrobione w bazie danych rozne pola mowiace o prawach dostepu. I teraz mam takie pytanko czy lepiej podczas samego procesu logowania pobrac wszystkie dane i zapisac je do sesji jakie kto ma przywileje (tylko mowie ze moze to byc nawet 20 zmiennych dla kazdego usera) czy przy kazdej probie wejscia danego usera pod dany adres sprawdzac zapytaniem do bazy czy ma takie prawo ?

jak troche nie zrozumiale to przepraszam - ale tak najprosciej mowiac to czy zapisywanie kolo 20 zmiennych sesyjnych dla kazdego usera nie spowoduje jakichs komplikacji (np. bardzo duzego obciazenia serwera lub innych rzeczy)

pozdrawiam
nasty
nie powinno, moim skromnym zdaniem lepjej jest jednorazowo pobierac wszystko, odciazajac traffic
Cysiaczek
Ja z kolei przychyle się do zdania, że lepiej sprawdzać, czy użytkownik ma prawa do wykonania żądania za każdym razem. Przechowywanie wszystkich uprawnień w sesji jest mało sensowne np. z takiego powodu, że jeśli administrator zmieni te prawa, to uzytkownik odczuje to dopiero przy ponownym ich wczytaniu z bazy. Można to oczywiści rozwiązać, ale po co? Wszystkozależy od projektu - jego wielkości, częstotliwości zmian w uprawnieniach, ilości użytkowników.

Pozdrawiam.
Ludvik
Cysiaczek: Porównaj sobie jak często będą dokonywane zmiany w uprawnieniach, a jak często będziesz pobeirał te uprawnienia. Jedno zapytanie kasujące sesję kontra xxx zapytań pobierających dane, każde przy odświeżeniu strony. Już lepiej dopisać coś, co oczyści przedawnione sesje, czy nada nowe uprawnienia. Strata czasu będzie minimalna przy kosztach wykonania każdego dodatkowego zapytania.
Cysiaczek
@Ludvik - czas potrzebny na zapytanie do bazy w tym wypadku nie jest tu aż tak duży, jeśłi odpowiednio utworzysz tabele uprawnien smile.gif ~0.00005 sekundy. Czy to wiele?
Ludvik
Ale nie rozumiem, jaki jest sens tak nadmiernie obciążać serwer, skoro można prosto to ominąć. Te mikrosekundy staną się ważne przy większych projektach, gdzie natężenie ruchu będzie znaczne. Poza tym po co wykonywać 100000 zapytań, jak można wykonać jedno? Zawsze powinno się dążyć do zmniejszenia obciążenia bazy. Poza tym takie sytuacje są niezwykle rzadkie w dobrze zaprojektowanym systemie.
Cysiaczek
@Ludvik - jesli bardzo zależy Ci na wydajności sererwa baz danych, to tak - warto takie rzeczy cashować, choć umieszczanie w zmiennych sesyjnych też ma swoje złe strony.
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.