Yerf!
*unwichtige Feldnamen lass ich hier mal weg
TABELLE 1
id | bildname | pfad |Tabelle 2
eine weitere Tabelle mit den labels
id | keyword | id_von_tbl1
Man könnte evtl. noch eine extra Tabelle für die Keywords machen und in Tabelle 2 nur die ID des Keywords eintragen. (macht es z.B. einfacher ein Keyword zu korrigieren)
So, nun kann ich, sobald ein neues Schlüsselwort kommt(was übrigens direkt die Bildpfade mitbringt) dieses in Tabelle 2 eintragen, dann die Bilder in Tabelle 1 eintragen, wenn nicht sowieso schon vorhanden.
Soweit so gut (wobei ich wie gesagt das Keyword in eine tabelle 3 eintragen würde)
Dann müsste ich allerdings noch irgendwo die betreffenden ID's der jeweiligen Bilder finden und in Tabelle 2 dem neuen Keyword zuordnen. Aber wie?
Du müsstest dir beim Einfügen der Bilder jede zugehörige ID merken. Da allerdings manchmal nicht eingefügt wird, weil das Bild schon vorhanden sein kann wird das wohl etwas unpraktisch. Der bessere Ansatz dürfte wohl ein nachgeschaltetes Select sein, das nach dem Einfügen alle Bilder zusammen mit ihren IDs wieder aus der Datenbank holt. Mit dieser Liste können dann die Einträge ind Tabelle 2 vorgenommen werden.
Ein anderer umgekehrter Ansatz war die ID des neuen Keywords zu merken und dann jeweils bei den Einträgen bzw. Updates der Bilder hinzuzufügen, was mir aber nicht so gefällt.(Vor lauter Überlegungen weiss ich schon gar nicht mehr warum ich das nicht will, aber es gab einen guten Grund).
Dann hättest du pro einem Bild zugeordneten Keyword einen Eintrag in Tabelle1 und somit die infromationen über das Bild mehrfach gespeichert.
Hinzu kommt die Prozedur der Assoziation. Egal ob jetzt Lösung 1 oder 2, in beiden Fällen ist es vorgesehen die id in einem Textfeld unterzubringen in der Form "3,4,12,24,33,34,35,112,", wobei je nach lösung das eben die Id's aus Tabelle 1 oder Tabelle 2 wären.
Aber doch hoffentlich nur beim Auslesen und nicht in der Datenstruktur der DB? Denn sonst ist das folgende nur eines deiner Probleme:
Nur, beim Hinzufügen wäre das ja noch einfach indem ich einfach den bisherigen Feldinhalt+den neuen Wert hinzufüge. Beim Update allerdings müsste ja erst geprüft werden ist der Wert schon drin, falls ja mit Stringfunktionen separieren, usw.
Trage für jede Einzelzuordnung eine neue Zeile in die Tabelle2 ein. Beim Auslesen kann man diese dann zusammenfassen lassen (entweder schon von der DB, MySQL kennt da z.B. ein Group_Concat oder vom Programm)
Daher meine Frage: Ist einer meine Ansätze zu empfehlen und wie kann ich das mit den Keywordassoziationen besser handhaben?
Du bist schon auf dem richtigen Weg aber du solltest dir die Normalisierung mal zu Gemüte führen (zumindest bis zur 3. NF)
Gruß,
Harlequin
<!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->