Ich versuche, ein Navigationssystem mit Kategorien Tabelle mit Hierarchien zu bauen. Normalerweise würde die Tabelle wie folgt definiert werden:MySQL & PHP - Mehrere Eltern Kind Beziehungen erstellen
id (int) - Primary key
name (varchar) - Name of the Category
parentid (int) - Parent ID of this Category referenced to same table (Self Join)
Aber der Haken ist, dass ich verlangen, dass eine Kategorie Kind zu mehreren Kategorien Eltern sein kann .. Genau wie ein Hat und gehört Viel (HABTM) Beziehung.
Ich weiß, dass, wenn es zwei Tabellen, Kategorien & Elemente gibt, wir eine Join-Tabelle categories_items verwenden, um die HABTM-Beziehungen aufzulisten. Aber hier habe ich keine zwei Tische, sondern nur Tische, aber sollte irgendwie HABTM-Beziehungen zu sich selbst zeigen. Ist dies mit einer einzigen Tabelle möglich? Wenn ja, wie? Wenn nicht möglich, welche Regeln (Tabellennamen, Felder) sollte ich beim Erstellen der zusätzlichen Join-Tabelle beachten?
Ich versuche, dies mit CakePHP zu erreichen, wenn jemand CakePHP Lösung für dieses Problem bieten kann, das wäre genial. Auch wenn das nicht möglich ist, wird jede Lösung zum Erstellen einer Join-Tabelle geschätzt. Vielen Dank für Ihre Zeit.
- Bearbeiten - Meine Frage scheint ein wenig verwirrend zu sein, also versuche ich, das, was ich suche, zu wiederholen. In traditionellen Self-Join-Beziehungen (Self-Join) mit Eltern-Kind-Beziehungen kann jedes Element nur einen Elternteil haben. Ich suche nach einer HABTM-Beziehung, d.h. mehreren Eltern für jeden Gegenstand.
Kategorien & Elemente - Um HABTM zu definieren, verwenden wir categories_items Join-Tabelle.
Wenn innerhalb von Kategorien ich HABTM brauche, was soll ich tun?
u kann durch getrennt sie durch Komma oder ein seperator –
+1 interessante Frage :-) – richsage
ich dies in einem Feld mit mehreren Werten speichern gefunden, während googeln, http://n2.nabble.com/Saving-self- referential-HABTM-relations-td1126141.html, ich habe versucht, das selbe zu replizieren, aber trotzdem fängt Cake die Verbindung nicht ein. Irgendeine Idee, jemand? – Ashok