User title: UNB developer & webmaster
Member since Jan 2004 ·
3740 posts · Location: Erlangen, Germany
Group memberships: Administrators, Members
Momentan ist es so implementiert: Der Beitrag wird gelesen. Dann werden die Tags gelesen und auch die letzte verfügbare Version mit Inhalt. Der Beitrag selbst kommt aus einer Suchabfrage, z.B. der Auflistung aller Beiträge sortiert nach dem Datum. Je nachdem, ob man den jetzt anzeigen will, kann man die zusätzlichen Angaben abrufen. Alles auf einmal geht nicht, und bei Tags erst recht nicht, da dabei ja mehrere Zeilen rauskommen, wo der Beitrag in einer einzigen Zeile steht. So gesehen bedarf es allerdings keiner zusätzlichen Abfrage, versionierte Tags abzurufen, da hab ich mich verschätzt. Eine weitere Tabelle muss der Datenbankserver aber freilich anfassen.
So wie ich mir das vorgestellt hätte, würden die Tags mitsamt dem Rest des Beitrags (Autor, Betreff, Inhalt) in einem Stück abgespeichert. Wenn man die Tags ändert (und dafür eine neue Version anlegen will - dazu gleich mehr), werden auch der Inhalt und der Rest in eine neue Version kopiert.
Wozu könnte es nützlich sein, alle Versionen zu verarbeiten, wenn man nur die letzte anzeigen will? Wenn die Versionsnummer > 1 ist, wurde der Beitrag irgendwann mal verändert. Das bekommt man ohne weiteren Aufwand raus. Was könnte man noch wissen wollen?
Zur Verwendung neuer Versionen: Ich hab mir letztens eine Optimierung des ganzen überlegt. Eine neue Version eines längeren Beitrags anzulegen, nur weil ein Tag hinzugefügt wurde, kann u.U. unerwünscht sein. Ebenfalls kann es evtl. nicht erforderlich sein, alles exakt zu versionieren. Daher könnte man das Anlegen einer neuen Version im API explizit vorsehen, wohingegen sich alle anderen Änderungen immer auf die letzte verfügbare Version auswirken. So kann man für immer die erste Version bearbeiten und braucht keinen weiteren Speicherplatz, oder man kann vor jeder Gruppe von Änderungen zunächst eine neue Version anlegen und diese Bearbeiten. Das ermöglicht der Anwendung (und ggf. auch dem Administrator) selbst zu entscheiden, was passieren soll.
♪ ...nanananah, all in all we’re just brilliant thieves, nanananah... ♪♬