Hallo,
ich bin hier relativ neu in dem Forum, gelesen habe ich als unregestrierter user viel, geschrieben noch nie. Ich befasse mich seit einiger Zeit (5-6 Jahre) mit php, jedoch eher als Hobby, immer mal wieder ein wenig, momentan bin ich dabei eher für "lernzwecke" ein kleines Browsergame zu programmieren, dabei habe ich eine Klasse welche die daten des Spiele accounts verarbeitet, zb. Resourcen und Truppen ect. pp. diese stehen in einer Datenbank, die ungefähr so aussieht:
(nur so als beispiel, sie sieht nicht ganz so aus...)
nun gibt es 3 möglichkeiten für mich (die mir einfallen).
1. Ich lade die komplette Spalte des Benutzers bei der Initzialisierung ein, und habe alle daten parat wenn Sie gebraucht werden.
Nachteil: Lädt leider auch daten die natürlich nicht gebraucht werden (zb. wenn er auf einer Seite ist wo die resourcen nicht angezeigt werden habe ich Sie trotzdem mit geladen - unnütze SQL belastung mmn.)
Vorteil: Nur eine "SELECT" abfrage, alle anderen DB querys währen dann UPDATE / INSERT / DELETE, jenach spalte, sehr einfach zu "warten"
oder
2. Ich lade für jede Seite spezifische Daten, zb. mit $a->getRes(); gibt es eine DB abfrage welche nur die res1, res2, res3 betrifft, rest lässt er dann aussen vor!
Nachteil: ggf. viele Abfrage, wenn man viel wissen muss für die Seite!
Vorteil: es wird nicht viel mehr geladen als notwendig!, relativ einfach zu warten im betrieb
3. eine Klasse für Datenbank zugriffe schreiben, welche die benötigten daten sammelt und dann eine variable Datenbank abfrage macht!
Vorteil: Nur eine Datenbank abfrage, nur die Daten die man benötigt.
Nachteil: mmn. sehr fehleranfällig, es muss nur eine andere Klasse kommen die etwas braucht was man gerade nicht beachtet hat und es entstehen fehler UND es ist sehr wartungsintensiv, da man bei jeder seite egenau schauen muss was gebraucht wird, bevor man es lädt!
was denkt Ihr währe am sinnvollsten oder gibt es methoden die ich so noch nicht bedacht habe
mfg
Valkyri
ich bin hier relativ neu in dem Forum, gelesen habe ich als unregestrierter user viel, geschrieben noch nie. Ich befasse mich seit einiger Zeit (5-6 Jahre) mit php, jedoch eher als Hobby, immer mal wieder ein wenig, momentan bin ich dabei eher für "lernzwecke" ein kleines Browsergame zu programmieren, dabei habe ich eine Klasse welche die daten des Spiele accounts verarbeitet, zb. Resourcen und Truppen ect. pp. diese stehen in einer Datenbank, die ungefähr so aussieht:
Code:
GUID | Name | res1 | res2 | actionId | actionEnd | [...] |
-------|-------|--------|------|-----------|-----------|-------|
1 | Alf | 1500 | 150 | 1 | 156489756 | [...] |
2 | Joh | 3251 | 356 | 5 | 156489698 | [...] |
3 | Alex | 2156 | 666 | 9 | 156485768 | [...] |
4 | Bernd | 9563 | 574 | 12 | 156486987 | [...] |
5 | Karl | 6351 | 635 | 1 | 156489990 | [...] |
nun gibt es 3 möglichkeiten für mich (die mir einfallen).
1. Ich lade die komplette Spalte des Benutzers bei der Initzialisierung ein, und habe alle daten parat wenn Sie gebraucht werden.
Nachteil: Lädt leider auch daten die natürlich nicht gebraucht werden (zb. wenn er auf einer Seite ist wo die resourcen nicht angezeigt werden habe ich Sie trotzdem mit geladen - unnütze SQL belastung mmn.)
Vorteil: Nur eine "SELECT" abfrage, alle anderen DB querys währen dann UPDATE / INSERT / DELETE, jenach spalte, sehr einfach zu "warten"
oder
2. Ich lade für jede Seite spezifische Daten, zb. mit $a->getRes(); gibt es eine DB abfrage welche nur die res1, res2, res3 betrifft, rest lässt er dann aussen vor!
Nachteil: ggf. viele Abfrage, wenn man viel wissen muss für die Seite!
Vorteil: es wird nicht viel mehr geladen als notwendig!, relativ einfach zu warten im betrieb
3. eine Klasse für Datenbank zugriffe schreiben, welche die benötigten daten sammelt und dann eine variable Datenbank abfrage macht!
Vorteil: Nur eine Datenbank abfrage, nur die Daten die man benötigt.
Nachteil: mmn. sehr fehleranfällig, es muss nur eine andere Klasse kommen die etwas braucht was man gerade nicht beachtet hat und es entstehen fehler UND es ist sehr wartungsintensiv, da man bei jeder seite egenau schauen muss was gebraucht wird, bevor man es lädt!
was denkt Ihr währe am sinnvollsten oder gibt es methoden die ich so noch nicht bedacht habe
mfg
Valkyri