Hi Schlofu!
... das mit den Triggern, hähä, müßte ich mir auch erst anlesen, klingt aber auf jedenfall nach der Lösung die ich mir wünsche ;)
Trigger sind nicht schwer. Aber ihre Verwendung kann komplizierte Strukturen und Beziehungen nach sich ziehen. Deshalb ist es Plficht, alles genau und einheitlich zu dokumentieren.
Kurze Frage dazu: Update / Insert / Delete könnte ich mit einem Trigger "belegen" (soweit ich das noch weiß), aber klappt das auch evt. mit Select?
1. Du kannst einerseits mit Stored Procedures arbeiten, die die Steuerung der richtigen Abfolge für dich übernehmen. Allerdings bedeutet das wiederum einen Mehraufwand bei der Datenbankverwaltung.
2. Inwiefern MySQL das Konzept der Views unterstützt, weiß ich nicht. Aber mit einem View könntest du eine Quasi-Tabelle erzeugen, die die Daten der lokalen DB und die aktuellen Daten enthält. Auf dem View kannst du dann im Programm wie auf einer Tabelle operieren. [1]
Oder 3. Einfach vor der Abfrage aus der lokalen DB, neuere Einträge aus der externen DB aktualisieren. Das kann dann auch durchaus eine gespeicherte Prozedur sein.
Denkbar wäre auch eine Mischform. Du arbeitest mit dem View und einem Cronjob. Der Cronjob aktualisiert alle paar Stunden die interne DB (z. B. über den Aufruf einer Stored Procedure) und garantiert somit, dass der View nicht Massen an aktuellen Daten bereithalten muss.
Du bekommst hier Antworten von einem der sich selbst bestenfalls als interessierter Fortgeschrittener bezeichnen würde. Aber vielleicht geben ein paar genannte Punkte dir oder Vinzenz die entscheidende Anregung.
Bzw. würde ich jetzt ganz einfach meine DB-Klasse dahingehend erweitern, das sie das tut - statt mich ins Triggern zu bringen %) - kurzfristing. Langfristig werde ich's mir erlernen...
Wie gesagt, die Trigger sind nicht schwer, so lange man sauber dokumentiert und diese Dokumentation bei Problemen auch konsultiert. =)
[1] Ob dieses Konzept wirklich so funktioniert... Ich weiß es nicht... =)
MfG H☼psel
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)