PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Musik Datenbank



08-01-2001, 00:36
Ich suche eine Datenbank, mit der ich Musik CDs erfassen kann. Dabei sollen Felder wie Titel, Interpret, Songs etc. enthalten sein. Außerdem sollte noch ein Feld für das Cover mit drin sein.
Gibt es sowas schon fertig zum runterladen oder evtl. kaufen?
Kann man sowas mit MySQL machen? (ich kenn' mich noch nicht so aus..)

08-01-2001, 20:48
Bei den Software Seiten habe ich schon gesucht, aber nichts gefunden.
Mal angenommen, ich wollte sowas selbst erstellen, wie fängt man da am besten an? Gibt es Clients, mit denen sowas nicht allzu schwer ist? Gibt es Literatur für Einsteiger?

08-01-2001, 21:04
Hi!

Schau Dir mal dieses Tutorial an:

http://www.rent-a-database.de/mysql/mysql.zip

Gruß

Markor

09-01-2001, 00:05
Hi,

die flexibelste Lösung wäre natürlich mit php und mysql, weil du es da dann an Deine Verhältnisse anpassen kannst. Wenn du aber in den Anwendungen nicht so fit bist, oder nicht genug Zeit hast um Dich einzuarbeiten, kannst du nach was vorgefertigtem schauen.
unter
http://www.freshmeat.net

einfach nach CD und db suchen,

oder dich bei
http://www.sourceforge.net einfach durch die Softwaremap klicken.

Gruss Martin

Matflasch
26-08-2004, 12:47
*Thread entstaub*

Hmm ja,
der Thread hier ist der Einzige, den ich zu dem Thema gefunden habe, dann führe ich den doch mal weiter...

Ich bin grade dabei in Java (JFC) eine solche Datenbank zu schreiben. Java ist dabei kein Problem, eher die anordnung, wie ich die Daten speichern soll/kann/will.

Ich habe ein Programm bisher entwickelt, mit dem man Daten eintragen konnte und sortiert ausgeben kann etc. Doch heut morgen kam mir spontan die Idee, die MySQL-Tabellen auf den Kopf zu stellen. Gedacht, getan, immernoch unzufrieden.

Am besten poste ich erstmal, wie es war, wie es jetzt ist, und wie ich es gerne hätte.


So war es bis gestern abend...


// Tabelle fuer die Art der CD (Album, Sampler, Split, etc)
CREATE TABLE msk_t_art (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
dateadd INT(14) NOT NULL);

// Tabelle fuer die CD an sich
CREATE TABLE msk_t_cd (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
labelid INT(14),
genreid INT(14),
artid INT(14) NOT NULL,
cdnr INT(5) NOT NULL,
cdanz INT(5) NOT NULL,
trackanz INT(5) NOT NULL,
release INT(4),
info TEXT,
dateadd INT(14) NOT NULL);

// Tabelle fuers Genre
CREATE TABLE msk_t_genre (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
dateadd INT(14) NOT NULL);

// Tabelle fuer den Interpreten

CREATE TABLE msk_t_interpret (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255),
homepage VARCHAR(255),
info TEXT,
dateadd INT(14) NOT NULL);

// Tabelle fuers Label
CREATE TABLE msk_t_label (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255),
homepage VARCHAR(255),
info TEXT,
dateadd INT(14) NOT NULL);

// Tabelle fuer die Tracks
CREATE TABLE msk_t_track (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
interpretid INT(14) NOT NULL,
albumid INT(14),
cdnr INT(5) NOT NULL,
tracknr INT(5) NOT NULL,
laenge INT(5) NOT NULL,
lyric TEXT,
info TEXT,
dateadd INT(14) NOT NULL);


So richtig zufrieden war ich damit von anfang an nicht. Naja, heut kam die Aenderung...



// Tabelle fuer die Alben
CREATE TABLE msk_t_album (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
interpretid INT(14) NOT NULL,
labelid INT(14) NOT NULL,
genreid INT(14) NOT NULL,
cdnr INT(5) NOT NULL,
cdanz INT(5) NOT NULL,
trackanz INT(5) NOT NULL,
release INT(5),
info TEXT,
dateadd TIMESTAMP NOT NULL);

// Tabelle fuer die Titel der Alben
CREATE TABLE msk_t_albumtracks (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
albumid INT(14) NOT NULL,
cdnr INT(5) NOT NULL,
tracknr INT(5) NOT NULL,
laenge INT(5) NOT NULL,
lyric TEXT,
info TEXT,
dateadd TIMESTAMP NOT NULL);

// Tabelle fuer die Sampler
CREATE TABLE msk_t_sampler (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
labelid INT(14) NOT NULL,
genreid INT(14) NOT NULL,
cdnr INT(5) NOT NULL,
cdanz INT(5) NOT NULL,
trackanz INT(5) NOT NULL,
release INT(5),
info TEXT,
dateadd TIMESTAMP NOT NULL);

// Tabelle fuer die Tracks der Sampler
CREATE TABLE msk_t_samplertracks (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
interpretid INT(14) NOT NULL,
samplerid INT(14) NOT NULL,
cdnr INT(5) NOT NULL,
tracknr INT(5) NOT NULL,
laenge INT(5),
lyric TEXT,
info TEXT,
dateadd TIMESTAMP NOT NULL);

// Tabelle fuer die Split-CDs
CREATE TABLE msk_t_split (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
labelid INT(14) NOT NULL,
genreid INT(14) NOT NULL,
cdnr INT(5) NOT NULL,
cdanz INT(5) NOT NULL,
trackanz INT(5) NOT NULL,
release INT(5),
info TEXT,
dateadd TIMESTAMP NOT NULL);

// Tabelle fuer die Tracks der Split-CDs
CREATE TABLE msk_t_splittracks (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
interpretid INT(14) NOT NULL,
splitid INT(14) NOT NULL,
cdnr INT(5) NOT NULL,
tracknr INT(5) NOT NULL,
laenge INT(5),
lyric TEXT,
info TEXT,
dateadd TIMESTAMP NOT NULL);

// Tabelle fuer die Maxi-CDs
CREATE TABLE msk_t_maxi (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
interpretid INT(14) NOT NULL,
labelid INT(14) NOT NULL,
genreid INT(14) NOT NULL,
cdnr INT(5) NOT NULL,
cdanz INT(5) NOT NULL,
trackanz INT(5) NOT NULL,
release INT(5),
info TEXT,
dateadd TIMESTAMP NOT NULL);

// Tabelle fuer die Tracks der Maxi-CDs
CREATE TABLE msk_t_maxitracks (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
maxiid INT(14) NOT NULL,
cdnr INT(5) NOT NULL,
tracknr INT(5) NOT NULL,
laenge INT(5),
lyric TEXT,
info TEXT,
dateadd TIMESTAMP NOT NULL);

// Tabelle fuer einzelne Tracks
CREATE TABLE msk_t_tracks (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
interpretid INT(14) NOT NULL,
laenge INT(5),
lyric TEXT,
info TEXT,
dateadd TIMESTAMP NOT NULL);

// Tabelle fuer die Interpreten
CREATE TABLE msk_t_interpret (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255),
homepage VARCHAR(255),
info TEXT,
dateadd TIMESTAMP NOT NULL);

// Tabelle fuer die Label
CREATE TABLE msk_t_label (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255),
homepage VARCHAR(255),
info TEXT,
dateadd TIMESTAMP NOT NULL);

// Tabelle fuer die Genres
CREATE TABLE msk_t_genre (
id INT(14) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
dateadd TIMESTAMP NOT NULL);


Damit bin ich aber immer noch lange nicht zufrieden.
Langsam gefällt es mir, wie es vorher war, besser, weil 1 Tabelle fuer die CDs und 1 Tabelle fuer die Tracks da war, unterteilen kann man ja durch die 'art' (extra feld).


Geplant ist später auch noch, dass man MP3-Ordner einscannen kann. Der ID3-Tag soll dann ausgelesen werden und automatisch in die DB eingetragen werden. Dazu muss der ID3-Tag zwar stimmen, aber das sollte vorher ja machbar sein ;) (Easytag sein dank [linux]).

Habt ihr evtl schon ne Musik-Datenbank, die möglichst alle Daten auflistet?
Bzw wie habt ihr das mit der Struktur gemacht?

Meine Tabellen sind sich ja relativ ähnlich.
Problem ist nur, dass ein Album eine 'Interpretid' hat, ein Sampler aber nicht, da er verschiedene Interpreten hat, also kann die Interpretid bei Samplern am besten bei den Tracks stehen und bei Alben am besten beim Album (speichermäßig).

Es gibt ja auch Freedb.org, allerdings habe ich da noch nix von der TabellenStruktur gefunden, muss ich nochmal genauer schauen... was ich da bisher gesehen hab is jedenfalls nen ziemliches wirrwarr ;)

Macht mal bitte vorschläge und äussert auch wünsche, wie es werden soll, gebe das Programm später auch gerne raus... ;) (GPL)

Mfg, Matflasch

elrond
27-08-2004, 08:44
Wenn ich vor einem solchen Problem stehe nehme ich papier und Bleistift und male mir ein Bild. (Getreu dem Spruch "Hast du von ahnung keine Spur, dann mal dir eine Hilfsfigur!" :D )

Wenn eine MusikDB meine Aufgabe wäre, wurde ich nicht mit den Musikstücken anfangen. (zentrele Tabelle zb. "song") Jeder Song bekommt eine ID.
Dann kann man anfangen die Songs zu qualifizieren indem man Eigenschaften wie Titel,Interpret, Dauers usw hinzufügt.

Eine zweite zentrale Tabelle könnte "album" sein; mit Titel, Albumtyp... usw. (Ein Sampler ist ein Album vom Typ "Sampler")

Die Verbindung würde ich über eine Zuordnungstabelle schaffen in der die albumID und die songID stehen. Damit bist du in der Lage ohne Redundanz ein Song ggf. mehreren Alben zuzuordnen.

Der ganze Rest hängt einfach hintendran... :D

Manuel Tennert
20-12-2004, 16:18
Es gibt diesbezüglich schon ein Projekt namens zemuda...ich selbst habe dieses Projekt gegründet und vielleicht hat der ein oder andere Interesse zu unterstüzen bzw. Vorschläge zu machen ;)
Die Internetseiten wurden erstellt, vorerst mit noch wenigen Informationen, es gibt allerdings auch ein Forum, bei dem sich ausgetauscht werden kann.
Datenbank basiert auf mysql und php...
Link: http://www.zemuda-project.german-sound.de

Pingu
20-12-2004, 16:43
Es gibt mehrere Projekte. Ein schnelle Suche bei Freshmeat (http://freshmeat.net/search/?q=music+database&section=projects&Go.x=0&Go.y=0) bringt folgende interessant klingende Projekte zu Tage:

Paloma (http://freshmeat.net/projects/paloma/)
Music Library (http://freshmeat.net/projects/musiclib/) (für phpGroupware)
Domo (http://freshmeat.net/projects/domo/)
gmmusic (http://freshmeat.net/projects/gmmusic/)
KmusicdB (http://freshmeat.net/projects/kmusicdb/)
Mp3cdBrowser (http://freshmeat.net/projects/mp3cdbrowser/)
Readerware (http://freshmeat.net/projects/rware/)
JamDB (http://freshmeat.net/projects/jamdb/)
Naamah (http://freshmeat.net/projects/naamah/)
Yammi (http://freshmeat.net/projects/yammi/)

Manches davon ist in Perl, C++, Java, PHP geschrieben mit und ohne DB. Also bestimmt für jeden etwas dabei.

Pingu