Ich hatte eine Idee, mit der ich eine n:m Beziehung umgehen wollte, um vielleicht schneller zu sein.
Ähnlich wie bei phpbb_search_results speichere ich die gesuchten ids in einem Array und speichere sie in der Datenbank tabelle1 per serialize(array).
Nun brauche ich bei der Ausgabe keinen INNER JOIN mehr, sondern lese erstmal die Grunddaten aus, damit ich die normalen Daten beziehe und den Inhalt des Arrays.
Danach mit einer zweiten Abfrage erhalte ich die Informationen zu den ids der tabelle2:
D.h. anstatt einem INNER JOIN Konstrukt nutze ich zwei normale SELECTs.
Fragen:
- Sehe ich das richtig, dass ich dann schneller bin? (beide Tabellen werden mehrere tausend Einträge besitzen)
- Was mache ich, wenn in tabelle2 ids ändern oder löschen will. Wie ermittel ich dann, welche Einträge in tabelle1 die ids im serialized(array) haben, damit ich die Bedarf dort ebenfalls rauslöschen kann?
Gruß
Ähnlich wie bei phpbb_search_results speichere ich die gesuchten ids in einem Array und speichere sie in der Datenbank tabelle1 per serialize(array).
Nun brauche ich bei der Ausgabe keinen INNER JOIN mehr, sondern lese erstmal die Grunddaten aus, damit ich die normalen Daten beziehe und den Inhalt des Arrays.
Danach mit einer zweiten Abfrage erhalte ich die Informationen zu den ids der tabelle2:
Code:
SELECT * FROM tabelle2 WHERE id IN(implode(', ', unserialize($array)))
Fragen:
- Sehe ich das richtig, dass ich dann schneller bin? (beide Tabellen werden mehrere tausend Einträge besitzen)
- Was mache ich, wenn in tabelle2 ids ändern oder löschen will. Wie ermittel ich dann, welche Einträge in tabelle1 die ids im serialized(array) haben, damit ich die Bedarf dort ebenfalls rauslöschen kann?
Gruß
Kommentar