mikrocontroller.net

Forum: Offtopic Konzeptionelle Frage zu Datenbanken


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

angenommen ich hab eine Webseite, die ein Menü darstellt, wobei die 
Menüpunkte aus einer Tabelle (mysql) ausgelesen werden. Zusätlich soll 
hinter jedem Menüpunkt eine Zahl dargestellt werden, wieviel Beiträge in 
der Kategorie einsortiert sind.

Ich hab das momentan so gelöst, dass eine query-abfrage gebraucht wird, 
um die Tabelle der Kategorien zu laden und für jede Kategorie gibt es 
eine Query-Abfrage, um die Anzahl der Beiträge in dieser Kategorie zu 
bestimmen.

Meine Frage ist jetzt ... Ist das sinnvoll oder nicht? Es sind bei z.B. 
12 Kategorieen bei jedem Seitenaufbau 13 SQL-Queries notwendig, nur um 
das Menü darzustellen.

Hat jemand eine Ahnung, ob das Normal ist das so zu machen? Oder ist das 
umständlich und erzeugt viel Last auf dem Server?

Kenn mich mit den Internas von mysql nicht besonders gut aus und weiß 
auch nicht, wie effizient und gecached usw die Abfragen werden.

Danke für eure Hilfe!

Grüße
Gast

Autor: umsteiger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also eine Tabelle mit 2 Spalten (Menüpunkte und Summe der Beiträge) 
sollte man mit einer einzigen Abfrage schaffen..

select menuepunkt, count(beitraege) from ... group by menuepunkt

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit GROUP BY und COUNT() kannst du das auf eine Abfrage reduzieren. 
Schaden wird es nicht, viel sparen wirst du damit aber vermutlich auch 
nicht.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das lässt sich mit einem mehr oder weniger geschickten JOIN und etwas 
GROUP mit einer Anfrage erschlagen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Yahoo-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.