Hallo dedlfix,
Wenn die neuen, oder auch die alten neuen Künstler sich sowieso in temp_song eintragen und du dann den Eintrag per Hand in die richtigen Tabellen übernimmst (bzw. dessen Übernahme anstößt), sähe ich da kein Problem, ein Formular zu gestalten, das die Songdaten anzeigt, eine Auswahlmöglichkeit für einen artists-Datensatz und Eingabefelder für neue artist-Daten.
Die rückwärtige Programmlogik nimmt dann die Songdaten und wenn kein artist-Datensatz gewählt ist, legt sie vorher einen neuen mit den Daten aus den Eingabefeldern an. Ansonsten werden letztere ignoriert und stattdessen die artist_id aus der Auswahl genommen.
Bei meinem aktuellem Entwurf mache ich es fast genauso:
1. Der Benutzer kann wählen zwischen einem existierenden Künstler oder einem neuen Künstler.
2.1. Wurde ein existierender Künstler ausgewählt, so kann man diesem ganz einfach ein Stück hinzufügen.
2.2. Wurde "neuer Künstler" ausgewählt, so werden im zweiten Schritt noch zwei zusätzliche Felder angezeigt, nämlich für den Namen und die Homepage des Künstlers.
3. Wurde in Schritt 2 ein existierender Künstler asgewählt - kein Problem. Wenn doch, so wird er derzeit einfach angelegt.
Ich habe halt nur irgendwie das Gefühl, dass ich hier mit zwei Tabellen ('artists' und 'songs') mit Kanonen auf Spatzen schieße, da es mit einer Tabelle wesentlich weniger Aufwand bedeuten würde.
Grüße
Marc Reichelt || http://www.marcreichelt.de/
Linux is like a wigwam - no windows, no gates and an Apache inside!
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
http://emmanuel.dammerer.at/selfcode.html