Hallo alle Ich arbeite an der db für eine Musik-App und ich habe dies bisher.Kann ich zwei auf einer Datenbank mit zwei Primärschlüsseln auswählen?
Song
SongId Name Artist
Playlist
PlaylistId Name
Playlist_with_songs
id (fk)PlaylistId (fk)SongId
letzte Tabelle beide sind ein Primärschlüssel.
Also frage ich mich, wie meine Abfrage aussehen wird. Bsp. Wenn ich alle Songs mit PlaylistId 5 bekommen möchte, dann müsste ich die eigentlichen Songs aus den Song-Tabellen holen, welche Aussage könnte ich verwenden.
Auch, Ist dies ein gutes Format zu folgen, wenn im Falle einer Playlist gelöscht wird, aber immer noch alle Songs verfügbar. Würde Kaskade dort arbeiten?
Dank (Ich bin mit SQLite.)
Wenn Sie alle Songs mit playlistId 5 erhalten möchten, dann können Sie wie rohe Abfrage verwenden Wählen Sie * aus Song wo SongId IN (wählen Sie SongId aus Playlist_with_songs wo PlaylistId = 5); –
Was Ihre zweite Frage betrifft: "Ist das ein gutes Format, das zu befolgen ist, wenn eine Playlist gelöscht wird, aber immer noch alle Songs verfügbar sind?" Ich denke, es ist gut genug :) Fremdschlüsseleinschränkungen sind standardmäßig nicht aktiviert SQLite sollten Sie es mit db.execSQL aktivieren ("PRAGMA foreign_keys = ON;"); Aber für Ihren Fall glaube ich, dass es gut ist, wenn Sie es nicht aktivieren :) und dann Kaskadenregeln definieren :) Sollte gut funktionieren :) Ich hoffe, ich habe ein wenig Sinn gemacht :) Wie auch immer, http://stackoverflow.com/questions/2545558/ Fremdschlüssel-Einschränkungen-in-android-using-sqlite-on-delete-cascade –
Danke für den Tipp Mann! @SandeepBhandari – Beto