php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.03.2006, 14:05  
ssm
Benutzer
 
Registriert seit: 21.03.2006
Beiträge: 65
ssm
Standard

Die Sache ist einfach die....
Wenn ich z.B. Statements & Funktioinen wie das folgende aus PHP-Linkdirtectory sehe wird mir ganz anders.
PHP-Code:
function get_path($id) {
    global 
$db$tables;
    
$path = array ();
    
$i 0;
    while (
$id != && $i 100) {
        
$row $db->GetRow("SELECT * FROM {$tables['category']['name']} WHERE ID = $id");
        
$id $row['PARENT_ID'];
        
$path[] = $row;
        
$i ++;
    }
    
$path[] = array ('ID' => '0''TITLE' => _L(SITE_NAME), 'TITLE_URL' => DOC_ROOT'DESCRIPTION' => SITE_DESC);
    return 
array_reverse($path);

Ist die Funktion um aus einem Table wie mein "Kategorien"-Table eine Navigation zu erstellen.
Da wird aus Not bis 100 gezählt und dann das erstellte Array um den Haupteintrag ergänz und letztendlich umgedreht - sowas kann es doch nicht sein........

Naja - ich bastel mal.....
__________________
IP-Popularität und Linkpopularität
ssm ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.03.2006, 14:18  
Gast
 
Beiträge: n/a
Standard

Na gut, doch nochmal ich :wink:

Es ist einfach eine Tatsache, dass Bäume abgebildet in Tabellen schwierig zu traversieren sind, wenn man es einigermassen performant haben will.

Dieser zitierte Code ist nur noch übel...der vermeidet zwar Rekursion, aber die Anzahl der Queries bleibt trotzdem gleich. Und die maximale Baumtiefe ist hier 100.....wenn das ein proffessionelles Produkt sein soll (ich kenne die Quelle nicht) dann Mahlzeit...

Denke nochmal in Ruhe über meinen Vorschlag mit den Hilfsspalten nach...sinnvoll auf deine Bedürfnisse angepasst kannst du alles mit jeweils einem Query abfackeln. Du musst dir halt von vorne herein im klaren sein, welche Daten in welcher Form du brauchst. Den Nachteil, den du dir mit solchen redundanten Infos in der DB einhandelst, ist natürlich zum einen die größere Intelligenz bei Updates, die du programmieren musst, und zum anderen die Gefahr inkonsistenter Daten in der DB. Man muss bei solchen Konstrukten sauber programmieren...
  Mit Zitat antworten
Alt 23.03.2006, 20:29  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Vielleicht wäre es in deinem Fall auch überlegenswert, den Baum in Form eines Nested Set zu speichern.
Eine kleine Einführung findest du hier: http://www.develnet.org/244.html
Nested Sets sind zwar ein wenig aufwendiger in der Administration, aber dafür dürfte es auch fertige Klassen zur Verwaltung geben (evtl. mal bei PEAR vorbeischauen).
xabbuh ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fester Wert bei Registrierung festlegen themr Datenbanken 1 07.03.2008 14:41
nach grösstem (unbekannten) Wert suchen lindner Datenbanken 2 20.08.2006 22:13
wert aus einer tabelle mit wert aus andere tabelle ersetzen lindner Datenbanken 3 11.07.2006 17:20
Wie diesen Wert in eine DB einfügen? Mike² Datenbanken 5 29.03.2006 23:57
array verarbeitung (schlag auf den hinterkopf) PHP Tipps 2007 9 16.11.2005 11:37
Vergleich von einem Wert, mit Werten aus einer Tabelle PHP Tipps 2005 14 01.11.2005 03:04
minus wert, plus wert in variable nutzen PHP Tipps 2005-2 5 22.10.2005 19:15
LOCK TABLES / LAST_INSERT_ID AliceD Datenbanken 3 20.07.2005 13:45
[Erledigt] Wert von Reihe 1 mit Wert von Reihe 2 tauschen Datenbanken 5 20.06.2005 17:21
Problem mit anzeige aus DB, erst nach refresh aktueller wert PHP Tipps 2005 7 27.04.2005 19:42
kleinsten und größten wert ermitteln niffi PHP Tipps 2005 14 26.04.2005 12:42
Wert automatisch erhöhen PHP Tipps 2005 5 13.02.2005 16:25
[Erledigt] Problem: per klick auf Button Wert erhöhen/verringern HTML, Usability und Barrierefreiheit 7 07.10.2004 08:31
[Erledigt] Checkbox Wert übergeben Datenbanken 4 12.08.2004 11:02
Wert eines Feldes abfragen und subtrahieren Datenbanken 4 04.07.2004 14:39


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.