Re(16): Systemprogrammier -> Webentwickler
Geizhals » Forum » Programmierung » Systemprogrammier -> Webentwickler (79 Beiträge, 1854 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.  Re: Systemprogrammier -> Webentwickler  (RevX am 16.09.2010, 16:13:15)
.  Re: Systemprogrammier -> Webentwickler  (colossus am 18.09.2010, 09:52:05)
...  Re(3): Systemprogrammier -> Webentwickler  (fatbox am 18.09.2010, 18:48:33)
........  Re(8): Systemprogrammier -> Webentwickler  (j. am 25.10.2010, 23:26:44)
................
Re(16): Systemprogrammier -> Webentwickler
25.10.2010, 14:49:29
Abgesehen davon, dass es möglich ist - warum hochkomplexe Queries mit allerlei
Joins schreiben, wenn man die selben Daten ganz einfach in einer Collection
speichern kann, die alle Arten von Daten halten kann?

Warum brauche ich in einer (Hausnummer) CD-sammlung eine Tabelle CDs, und eine
Tabelle Tracks, um meine Tracks zu CDs zu speichern; anstatt in einer
Collection CDs zu haben, in der jede CD als Sub-Knoten irgendwo eine Tracklist
hat?


Sorry, falls das jetzt eine dumme Frage ist, aber wie geht man dann mit folgender Aufgabe um:

Eine CD hat mehrere Tracks und ein Erscheinungsdatum.
Ein Track hat eine Position und einen Song.
Ein Song hat einen Künstler, einen Titel, ein Genre und eine Länge.

Ein Song kann von mehreren Tracks verwendet werden (zB. kann ein Lied in mehreren Compilations vorkommen).

Von einer CD gibt es unterschiedliche Typen: Compilation, Album, Maxi-CD, usw.

Ich möchte jetzt alle Compilations, die in den letzten 10 Tagen veröffentlicht wurden und mindestens 5 Lieder aus dem Genre "Pop" beinhalten.

Unter SQL wäre die Lösung ungefähr so:

SELECT      cd.id, cd.name
FROM        cd
INNER JOIN  tracks t ON ( t.cd_id = cd.id )
INNER JOIN  song s ON ( s.id = t.song_id )
INNER JOIN  genre g ON ( g.id = s.genre_id )
WHERE       g.name = 'Pop'
AND         cd.release_date > NOW() - INTERVAL 10 DAY
AND         cd.type = 'COMPILATION'
GROUP BY    cd.id, cd.name
HAVING      COUNT(*) >= 5


25.10.2010, 14:51 Uhr - Editiert von hellbringer, alte Version: hier
[ Dieser Beitrag wurde inzwischen editiert. Die aktuelle Version befindet sich hier. ]
Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
...  Re(3): Systemprogrammier -> Webentwickler  (j. am 25.10.2010, 23:29:15)
. Vom Autor zurückgezogen oder Autor hat seine Registrierung nicht bestätigt  (onnlein am 19.09.2010, 17:16:05)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung