:: Loginclub Board  

Zurück   :: Loginclub Board > :: Software Entwicklung · Coding > Serverseitige Websprachen
Benutzername
Kennwort
Registrieren Hilfe Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 01.07.2010, 23:07   #1
phos4
Moderator
 
Benutzerbild von phos4
 
Registrierungsdatum: 04.2003
Beiträge: 924
Frage [php] Tabelle in Array speichern sinnvoll?

Hi Folkz,

ich bin mal wieder am arbeiten und bin grade dabei eine optimale Lösung zu finden. Ich habe eine Tabelle die mehrfach durchsucht werden soll und nun frage ich mich ob es besser ist, die Datenbank in einem Array zu speichern.

Ich habe eine Tabelle in der Datenbank:
ID | Name | Link | Link 2 | Link 3

Ich muss diese Tabelle ca. 3-4 mal durchsuchen um ein Ergebnis zu erhalten. Da Frage ich mich, ob ich 4 Anfragen mit SELECT stellen soll oder in einer ersten Anfrage den Inhalt der benötigten Spalten in einem Array kopieren sollte. Dann kann ich das Array die 3-4 mal durchsuchen.

Was macht also am meisten Sinn?

mfg ~ phos4
phos4 ist offline   Mit Zitat antworten  
Alt 02.07.2010, 08:40   #2
Shakademus
Loginclub User
 
Registrierungsdatum: 05.2004
Ort: München
Beiträge: 662
Standard

Das kommt ganz auf die Anfragen an. Wenn Sie schön mit Indices umsetzbar sind und eine relativ kleine Teilmenge liefern, definitiv die Datenbank. Wenn alle Anfragen eine eher große Teilmenge liefern und eine komplexe Bedingung haben, kann das Array durchaus Sinn machen.
__________________
Thanks for reading
Shakademus
Shakademus ist offline   Mit Zitat antworten  
Alt 02.07.2010, 23:35   #3
phos4
Moderator
 
Benutzerbild von phos4
 
Registrierungsdatum: 04.2003
Beiträge: 924
Standard

Hoi,

ich denke das sich die Anzahl der Datensätze stark in Grenzen halten wird. Die Tabelle soll max. 65535 Eintraege fassen. Ich denke das jedoch nicht mehr wie max 20 vorhanden sein werden. Auch sind es nur 5 Spalten, wovon 2 Booleans sind. Der Rest wird nen unsigned Integer sein.

Die Sache ist, das ich mehrfach die Tabelle abfragen muss. Zum Beispiel:
- Wenn das erste Ergebnis Level 5 ist
-> Jetzt muss noch Level 0 - 4 abgefragt werden mit den entsprechenden Default-Werten

mfg ~ phos4
phos4 ist offline   Mit Zitat antworten  
Alt 06.07.2010, 13:29   #4
DrWhiteLetter
Super Moderator
 
Benutzerbild von DrWhiteLetter
 
Registrierungsdatum: 04.2003
Beiträge: 2.173
Standard

Falls dein Code nur in dieser speziellen Situation gebraucht wird und nicht an anderer Stelle eingesetzt werden soll, würde ich die Geschwindigkeit einfach bei beiden Methoden messen. Das ist wohl die einfachste Möglichkeit die Lösung zu finden.
DrWhiteLetter ist offline   Mit Zitat antworten  
Alt 06.07.2010, 23:27   #5
phos4
Moderator
 
Benutzerbild von phos4
 
Registrierungsdatum: 04.2003
Beiträge: 924
Standard

Hoi,

um eventuell etwas Licht ins Dunkel zu bringen, werde ich mal etwas genau auf die Aufgabe des Codes eingehen. Das ganze wird ein Menü, welches beliebig viele Untermenüs enthalten kann.

Die Tabelle:
[ID] -> Eindeutige ID des Menü-Eintrags
[Level] -> Level gibt an, welche Ebene sich der Menü-Eintrag befindet
[ParentID] -> Die ID des übergeordneten Menü-Elements
[Name] -> Name der für den Link im Menü genutzt wird

PHP-Code:
[ID][Level][ParentID][Name]
000    0                 Start
001    0                 OS
002    1       001       Windows
003    1       001       Linux
004    1       001       MacOS
005    2       003       Linux Downloads 

Es wird also nur an einer Stelle wirklich gebraucht. Da ich jedoch die Anzahl der Untermenüs nicht wirklich begrenzen möchte, kann es passieren immer mehr Anfragen an die Datenbank gesendet werden.

Beispiel:
Bei meinem Gedanken, wäre in der Datenbank durchsucht worden bis die ID gefunden wurde. Hat die ID eine ParentID muss auch dieses ermittelt werden. Also noch eine Anfrage. Bei einer Menütiefe von 10 wären es 10 Anfragen an die Datenbank. Deswegen die Frage ob es Sinn macht, alle Daten in ein Array zu kopieren und dann aus dem Speicher 10 mal abzufragen.

Eventuell ist es ja jetzt klar, was mein Problem aktuell ist.

mfg ~ phos4
phos4 ist offline   Mit Zitat antworten  
Antwort


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen
Es ist dir nicht erlaubt, auf Beiträge zu antworten
Es ist dir nicht erlaubt, Anhänge anzufügen
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten

vB Code ist An
Smileys sind An
[IMG] Code ist Aus
HTML-Code ist Aus
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 Uhr.

Kontakt : lic Website : Board Team : Statistiken : Archiv : Nach oben