Follow

Auf Grund des Hinweises von @comrad stelle ich meine Frage doch mal öffentlich.

Ich sammel die Playlist Daten der Öffentlich rechtlichen Radio Sendern ein.

Aus den Scrapern fällt am Ende eine Liste (json) mit den folgenden Infos heraus: Sendername, Datum Zeit, Interpret, Titel

Dies möchte ich speichern und hinterher auch "auswerten" aber ich weiß nicht ob mein Datenbank Ansatz überhaupt passend dafür ist.

Die aktuelle DB sieht so aus (SQL Dump)
gist.github.com/dasistdaniel/6

@dasistdaniel Moin,

das ist doch schon gut normalisiert. Das passt so, da du keine Information doppelt hälst.

Allerdings, wo sind denn die Foreign keys?

Ein paar Anregungen hätte ich noch:

gist.github.com/dasistdaniel/6

Würd ich in eine Tabelle auslagern, denn du willst ja nicht das Lied aktualisieren, sondern nur die Anzahl der Abspielungen.

gist.github.com/dasistdaniel/6

Tippfehler :-D

gist.github.com/dasistdaniel/6
Ich behaupte mal es gibt sicher zwei Lieder mit demselben Titel.

@comrad

--- Allerdings, wo sind denn die Foreign keys?

da hörte leider mein Datenbank Wissen schon auf und phpmyadmin hat mir da nicht wirklich weitergeholfen.

--- Würd ich in eine Tabelle auslagern, denn du willst ja nicht das Lied aktualisieren, sondern nur die Anzahl der Abspielungen.

Das war ein vergessenes Überbleibsel, der Playcount wird aktuell direkt über eine SQL Abfrage berechnet. Soll aber auch in eine eigene Tabelle ausgelagert werden.

@dasistdaniel Aktuell sind deine Fehler nur durch guten Glauben miteinander verbunden. Mit Foreign Keys sagst du der Datenbank, dass sie das Feld in Tabelle A mit dem verbundenen Feld in Tabelle B verifizieren soll, dass es existiert. Solange darauf eine Verbindung besteht, kann der Eintrag auch nicht gelöscht werden. Sorgt also für Konsistenz.

Syntax ist wie folgt:

ALTER TABLE Lieder
ADD FOREIGN KEY (InterpretID) REFERENCES Interpreten(InterpretID);

@dasistdaniel Also das Feld Lieder.InterpretID (also Tabelle Lieder, Feld InterpretID) würde so mit dem Feld Interpreten.InterpretID verknüpft werden.

@dasistdaniel
Im Zweifel kann man mit suchpacketen wie #elasticsearch auch flexibel auf unterschiedliche Schemas reagieren. Einfach MLS für deine Sprache nachschlagen
@comrad

Sign in to participate in the conversation
Ruhr.Social

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!