Hallo,
ich programmiere gerade ein kleines Geschichtenarchiv mit PHP/MYSQL, und habe ein paar Performancefragen.
Datenbank (vereinfacht):
- Benutzer (UID, Namen, …)
- Benutzermailadressen (UID, Mailadresse)
- Geschichten (SID, UID, Title)
- Kapitel (SID, CHID, Title)
- Kommentare (SID, UID, Kommentar)
1. Ich möchte eine Liste aller Benutzer und deren Mailadressen haben.
SELECT * FROM Benutzer b, Bernutzermailadressen a WHERE b.uid = a.uid ORDER BY …
ODER sollte ich die beiden Tabellen joinen?
2. Ich möchte eine Statistik programmieren, die Anzeigt, welche Geschichte wie viele Kapitel und wie viele Kommentare hat.
Ich habe das derzeit so in einem SQL gelöst:
SELECT (SELECT count(ka.*) FROM Kapitel ka WHERE ka.sid = g.sid) as cnt1, (SELECT count(ko.*) FROM Kommentare ko WHERE ko.sid = g.sid) as cnt2 FROM Geschichten g ORDER BY …
Ich könnte mir aber auch vorstellen ZUERST alle Geschichten herauszuholen und dann 2 einzelne SQLs pro Geschichte zu machen, wo ich aber hörte, dass man lieber einen großen, statt viele kleine machen sollte.
Ich hoffe, ihr könnt mir da helfen.
LG Stefan.