Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Datenspeicherung oder DB-Anfrage (https://www.delphipraxis.net/152410-datenspeicherung-oder-db-anfrage.html)

fkerber 21. Jun 2010 19:29

Datenbank: MySQL • Version: 5 • Zugriff über: PHP

Datenspeicherung oder DB-Anfrage
 
Hi,

sorry für den komischen Titel, aber ne andere Beschreibung in wenig Zeichen fiel mir nicht ein.

Worum es mir geht ist folgendes:
Ich hab ein PHP-System (Webseite), in das man sich einloggt und jeder Nutzer hat (in der DB gespeichert) verschiedene Eigenschaften (sagen wir der Einfachheit halber mal es wären zwei Felder die je so eine Art Sicherheitsstufe bedeuten.)

Die Frage ist jetzt - wie gehe ich mit diesen Infos um.
Bisher mache ich es so, dass ich sie nach dem Login auslese und in der Session abspeichere. So kann ich jederzeit darauf zugreifen, ohne deswegen nochmal die DB anfragen zu müssen bzw. ohne in einer Anfrage nochmal mit der User-Tabelle joinen zu müssen. Ist das der sinnvolle Weg oder würde man besser jedes Mal nochmal die DB-Anfragen (bzw. es mit in vorhandene Abfragen einbauen)?

Konkret geht es um drei DB-Felder, die bei jedem Seitenaufruf geprüft werden müssten und je nach Seite noch bis zu 2 weitere...


Liebe Grüße,
Frederic

mkinzler 21. Jun 2010 19:38

AW: Datenspeicherung oder DB-Anfrage
 
Ja, eine Session würde sich hier anbieten

mirage228 21. Jun 2010 19:38

AW: Datenspeicherung oder DB-Anfrage
 
Also wenn es eine Berechtigung oder Sicherheitsstufe ist, würde ich sagen, dass es auf den Anwendungsfall ankommt.
Konkret musst Du entscheiden, wie wichtig es ist, dass du immer den aller aktuellsten Stand zur Verfügung stehen hast oder es reicht, wenn das beim User-Login ermittelt wird.

Folgen Faktoren könnten noch interessant sein:
a) Wie sicherheitskritisch ist die Anwendung?
b) Wie komplex ist diese Abfrage nach der Sicherheitsstufe?
c) Wie oft ändern sich diese Werte in der Regel? Wird das einmal eingestellt oder ändert sich das während der Session mal öfters?
d) Wie lange dauert eine User-Session im Schnitt?

Viele Grüße

fkerber 21. Jun 2010 19:42

AW: Datenspeicherung oder DB-Anfrage
 
Hi!

a) schon relativ - es hängen keine Menschenleben davon ab - aber uU Schulnoten z.B.
b) nicht sehr - JOIN auf die Usertabelle ON id = id quasi und dann numerisches Feld mit einbeziehen
c) quasi nie
d) ähm - gute Frage ;) So wie es auf dem Server voreingestellt ist - also ich hab noch nie ein Timeout bekommen - würde daher sagen vom Einloggen bis zum Ausloggen / schließen des Browsers.


Grüße, Frederic

mirage228 21. Jun 2010 20:20

AW: Datenspeicherung oder DB-Anfrage
 
Zitat:

Zitat von fkerber (Beitrag 1030763)
c) quasi nie

Dann spricht meiner Ansicht nach nichts dagegen diese Daten über die Session zwischenzuspeichern (also quasi das als Cache zu benutzen). :)

Könntest natürlich auch einen Timeout innerhalb der Session vermerken, sodass z.B. alle 5 Minuten spätestens die Werte neu aus der Datenbank in die Session gelesen werden... damit würdest Du dich ein Stückchen Richtung der Anforderungen aus a) bewegen - möglich wäre auch, dass bestimmte besonders kritische Module (falls es solche gibt) diesen Wert immer aus der DB lesen oder so.

fkerber 21. Jun 2010 20:44

AW: Datenspeicherung oder DB-Anfrage
 
Hi!

Gut, es bestehen also keine sicherheitsrelevanten Bedenken, dass man sowas in der Session speichert?

Dann würde ich das aktuelle System beibehalten - macht die Queries schlanker.



Liebe Grüße,
Frederic

mkinzler 21. Jun 2010 20:50

AW: Datenspeicherung oder DB-Anfrage
 
Die Werte dr Session bleiben ja auf dem Server. U.U. solltest du die Sessions an IPs binden

fkerber 21. Jun 2010 21:26

AW: Datenspeicherung oder DB-Anfrage
 
Hi!

Da bin ich ehrlich gesagt kein Freund von.
Zumindest nach meinem Wissensstand gibt es doch ISP, bei denen man als Kunde öfter mal ne neue IP gibt (namentlich schwirrt mir da mal AOL im Kopf rum...)
Für die wäre das ziemlich doof.


Grüße, Frederic

mkinzler 21. Jun 2010 21:36

AW: Datenspeicherung oder DB-Anfrage
 
Es kommt halt auf die Dauer eine Session an. Bei einer persistenten Session macht das natürlich keinen Sinn.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz