MANY_MANY-Relation über Feld mit kommaseparierten Werten

Ich frage mich, ob es möglich ist, eine MANY_MANY-Relation über ein Feld mit kommaseparierten Werten zu lösen.

Beispiel:

Ich habe eine Tabelle "Artikel" und eine Tabelle "Kategorien". In der Tabelle "Artikel" gibt es ein Feld "categoryIds" mit einer oder mehreren Kategorie-IDs, getrennt durch Kommas.

Ist es möglich, dies in der relations()-Methode abzubilden? Ich habe bisher keine Lösung gefunden.

PS: Ich weiss, dass man dies normalerweise über Zwischentabellen löst, oft ist aber dieser Weg einfacher.

Es geht zumindest nicht einfach. :)

Ehrlichgesagt würd ich auch tatsächlich davon abraten und die von dir schon erwähnte Verknüpfungstabelle empfehlen. Ich erinnere mich, dass ich das vor langer Zeit auch immer so gemacht hab, bis ich dann kapiert hab, wofür das "relational" bei "relationalen Datenbanken" steht. DBs sind einfach relativ gut darin, über mehrere Tabellen mit JOINs zu arbeiten. Daher sollte man den Job die DB übernehmen lassen, statt seine eigene Logik zu bemühen. Auch Yii ist dahingehend ausgelegt.

Wobei selbst im Yii Demoblog die Tags in den Posts nichts anderes sind als komma-separierte Werte? Werde wohl echte Relationen einführen für den konkreten Fall.

Ok, das ist aber auch sehr einfacher Anwendungsfall, wo in der Tags-Tabelle nur einzelne Strings gespeichert werden. In den meisten praktischen Fällen wird es eher komplizierter sein.

Hallo Tebe. Ist es denn überhaupt sinnvoll sowas zu tun.

Warum gibt es nicht einen Artikel mit einer Kategorie id und wenn es den Artikel in einer anderen Kategorie gibt dann sollt man den in die andere kategorie kopieren können.Aber wenn es unbeidngt sein muß ist dies meiner Meinung nach eigentlöich der richtige Einsatz einer Lookup Tabelle wenn nicht hierfür für was dann . InnoDB foreign Keys und los gehts