Antworten auf deine Fragen:
Neues Thema erstellen

Macht es sinn Benutzerdaten als Global zu speichern um DB abfr. zu reduzieren?

ap1

Grafik/Web

Hallo!

Ich habe eine kleine Frage!
Meine Benutzerklasse regelt (was auch sonst) die Daten der Benutzer! Lädt sie, gibt sie zurück und ändert sie ggf. Bei mehr Community Inhalt der Seite, wird diese Klasse im Durchschnitt bis zu 200x aufgerufen, wobei es sein kann dass es ca 50-60 mal für nur einen Nutzer neu erzeugt wird!

Ist es also sinnvoll beim Laden der Benutzerdaten aus der DB, diese geladenen Daten in einen Globalen Array zu packen mit der BenutzerID als Arrayschlüssel, und dann zu Überprüfen ob es schonmal geladen wurde, und wenn ja dann diese Daten verwenden?

Sicherheitslücken? Sonstige Probleme dabei? Performance?
Vielen vielen dank für eure Hifle!
 

saila

Moderatorle

AW: Macht es sinn Benutzerdaten als Global zu speichern um DB abfr. zu reduzieren?

Hi,

Benutzerdaten kann man wie Stefan mitteilt in eine Session legen. Die Frage ist allerdings, wie oft werden diese Daten benötigt bzw. welche werden ständig benötigt (wie z.B. UserId, Username usw.) und welche werden nur bei bestimmten Seiten dargestellt wie z.B. vollständige Adressdaten und persöhnliche Daten. Ersteres wird in der Regel immer in eine Session nach erfolgreichem Login gelegt. Letzteres wird aus der Datenbank angefordert, wenn es erforderlich ist. Ansonsten bleiben die persönlichen Daten gesichert bzw. werden erste bei Bedarf geliefert.

Ich wäre/bin heute soweit zu sagen, dass die vollständigen persönlichen Daten erst dann angezeigt werden, wenn z.B. das Passwort oder ein Kennwort hierfür angegeben wurde. Alles andere ist heutezutage in dem ganzen Datenkaos und Datenmissbrauch gar nicht anderst zu sichern. Zumal man Session's, wenn diese nicht sauber gescriptet wurden auch von Fremden übernehmbar sind. Ja selbst die Tatsache, dass man an einem PC sitzt, diesen beim kurzzeitigen Verlassen des PC's nicht sperrt und ein anderer an den PC sitzt und sich mal die Daten betrachten würde. Selbst das ist im Grunde schon ein Risiko und Tür für möglichen Datenmissbrauch.

Nun zur Frage - persönliche Userdaten dürfen auf keinen Fall global zur Verfügung stehen!
 

ap1

Grafik/Web

AW: Macht es sinn Benutzerdaten als Global zu speichern um DB abfr. zu reduzieren?

Hi,

Benutzerdaten kann man wie Stefan mitteilt in eine Session legen. Die Frage ist allerdings, wie oft werden diese Daten benötigt bzw. welche werden ständig benötigt (wie z.B. UserId, Username usw.) und welche werden nur bei bestimmten Seiten dargestellt wie z.B. vollständige Adressdaten und persöhnliche Daten. Ersteres wird in der Regel immer in eine Session nach erfolgreichem Login gelegt. Letzteres wird aus der Datenbank angefordert, wenn es erforderlich ist. Ansonsten bleiben die persönlichen Daten gesichert bzw. werden erste bei Bedarf geliefert.

Ich wäre/bin heute soweit zu sagen, dass die vollständigen persönlichen Daten erst dann angezeigt werden, wenn z.B. das Passwort oder ein Kennwort hierfür angegeben wurde. Alles andere ist heutezutage in dem ganzen Datenkaos und Datenmissbrauch gar nicht anderst zu sichern. Zumal man Session's, wenn diese nicht sauber gescriptet wurden auch von Fremden übernehmbar sind. Ja selbst die Tatsache, dass man an einem PC sitzt, diesen beim kurzzeitigen Verlassen des PC's nicht sperrt und ein anderer an den PC sitzt und sich mal die Daten betrachten würde. Selbst das ist im Grunde schon ein Risiko und Tür für möglichen Datenmissbrauch.

Nun zur Frage - persönliche Userdaten dürfen auf keinen Fall global zur Verfügung stehen!


Hi Leute.

Was ich meinte ist dass die Daten dem System zur verfügung stehen und bei 500x abrufen nicht jedesmal doppelt aus der db geholt werden! Was, denke ich, ziemlichen Datentraffic verursacht... Deshalb hab ich das so geregelt
PHP:
        if (isset($GLOBALS["benutzer_klasse"][$benutzerId])) {
            $this->user = $$GLOBALS["benutzer_klasse"][$benutzerId];
            return $GLOBALS["benutzer_klasse"][$benutzerId];
        } else { 
        // dem Global benutzer_klasse wird ein neues Array Element zugeordnet 
        }
Und diese Daten (auch die anderer) speichere ich sicher nicht in einer Session ;) wäre blöd oder?

Hoffe ihr versteht was ich meine ;)
Danke für die antworten soweit!
 

fakerer

Aktives Mitglied

AW: Macht es sinn Benutzerdaten als Global zu speichern um DB abfr. zu reduzieren?

Also ich würde auch die Daten die oft gebraucht werden einfach in der Session ablegen.
 

AlexanderBo

Gesperrt

AW: Macht es sinn Benutzerdaten als Global zu speichern um DB abfr. zu reduzieren?

globals nur in sehr seltenen ausnahmefällen!
die daten in eine session packen (die wichtig sind)...
letztendlich wird der user sich seine ganzen nicht ewiglich anschaun wollen;-)
uuund sonne DB kann schon was ab;-)
 

ak56Lk

Noch nicht viel geschrieben

AW: Macht es sinn Benutzerdaten als Global zu speichern um DB abfr. zu reduzieren?

Du kannst deine Benutzerklasse auch im(?) Singleton-Pattern erstellen. Dadurch kannst du nur eine Instanz erstellen. Wenn noch keine Instanz existiert, kannst du beim 1. Aufruf die Daten auslesen und diese dann z.b. in $this->data ablegen. Beim 2. Aufruf kannst du prüfen, ob $this->data schon gefüllt ist. Wenn das so ist, hast du die Daten und brauchst die DB nicht nochma beschäftigen.

Kleines Bsp.:
PHP:
class User {
  private $data = array();
  private static $instance = null;
 
  private function __construct() {}
  private function __*****() {}
 
  public static function getInstance() {
    if(self::$instance === null) {
      self::$instance = new User();
    }
 
    return self::$instance;
  }
 
  public function getData() {
    if(count($this->data) < 1) {
      //Daten wurden noch nicht abgeholt
    }
    else {
      //Daten müssen noch abgeholt werden
    }
  }
}
 
$user = User::getInstance();
$data = $user->getData();

***** = c l o n e
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.636
Beiträge
1.538.484
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben