Menu

#4 Links zwischen Postings / Archivierung

open
nobody
7
2001-05-18
2001-05-18
No

Enthδlt ein Posting X einen Link auf ein Posting Y, dann wird dieser Link "broken", sobald sich der URL
von Y durch Archivierung nach Y' δndert bzw. durch Lφschen verloren geht.

Ein Ansatz zur automatischen Reparatur solcher "forums-interner Links" wδre (aus einem
SELF-Forum-Betrag):

»» Ist es mφglich, die Parameter etwas zu verδndern oder zumindest die
»» Sache so einzustellen, dass ein Thread nach dem Herausfallen weiter-
»» hin ca. 1 Woche am alten Platz erreichbar ist, allerdings ohne Ant-
»» wortmφglichkeit?
»» Damit wόrde auch verhindert, dass es tote Links gibt, wenn ich hier
»» in meinem Posting auf einen Thread weiter unten verweise.

das lδίt sich allein durch Δnderung der Parameter nicht verhindern.

Das dynamische Archivierungsverfahren bewirkt, daί Du vorher keine
Information darόber bekommen kannst, welches Postings vor oder nach
welchem anderen aus dem Forum-Cache entfernt wird. 'oben' und 'unten'
sind also irrelevant.

Zwei Fδlle fallen mir spontan ein:

a) Posting X linkt auf Y, Y wird zuerst archiviert.
Dann kann der Archivierer im Mmoment dieser Archivierung den Verweis
innerhalb von X auf den URL des Threads im Archiv anpassen - denn er
weiί, daί Y nach Y' archiviert und nicht etwa gelφscht wurde.
(Wόrde Y nicht archiviert, sondern gelφscht, dann kφnnte der Verweis
auf 'inaktiv' mit einem entsprechenden Vermerkt gesetzt werden.)
Aber wer sagt dem Archivierer, daί X einen Verweis auf Y enthδlt?

Dazu sollten schon beim Entstehen von X (also beim Posten!) alle
Verweise zwischen Postings zusδtzlich separat gespeichert werden
(also eine Relation mit dem Eintrag (Y, X) mit der Bedeutung: "Wenn
Y vom Archivierer bearbeitet wird, dann passe den Inhalt von X an").
Der Archivierer tut dann genau dies - und lφscht den Eintrag aus
dieser Tabelle wieder.

b) Posting X linkt auf Y, X wird zuerst archiviert.
Egal, ob Y spδter gelφscht oder archiviert wird, zum Zeitpunkt der
Archivierung von X nach X' steht das noch nicht fest.
Der URL von Y δndert sich aber durch seine spδtere Archivierung;
die nun anzupassende Stelle befindet sich jedoch bereits im Archiv!

Die in a) beschriebene Relation kφnnte der Archivierer dafόr nutzen
und im Moment der Archivierung von X den Wert (Y, X) auf (Y, X')
umschreiben.
Wδhrend der Archivierung von Y ist dann feststellbar, daί in X' ein
anzupassender Link existiert; wird schlieίlich Y archiviert (oder ge-
lφscht - das ist egal), dann wird X' im Archiv nachtrδglich geδndert.

Es gδbe also drei Zugriffe auf diese Tabelle:
- beim Posten von X (INSERT "Y,X"),
- beim Archivieren von X (UPDATE "Y,X" -> "Y,X'"),
- beim Archivieren von Y (DELETE "*,Y").
Plus die entsprechenden Δnderungen in X bzw. X'.

Da Links zwischen Postings ein seltener Fall sind, dόrfte ein "full table
scan" auf diese Relation (mit wenigen Eintrδgen) performancemδίig vφllig
ausreichen.

Viele Grόίe
Michael

P.S.: Was habe ich noch alles όbersehen?

Discussion

  • Frank Schoenmann

    • priority: 5 --> 7
     
  • Harald Breitkreutz

    Logged In: YES
    user_id=177050

    Wrde es nicht auch ausreichen, wenn die index.shtml sofern
    sie das angegebene Posting (z.B. Y) nicht findet selbst im
    Archiv nachschaut, ob das gesuchte Posting dort vorhanden
    ist ? Die Nummern der Threads bleiben ja in der URL
    erhalten, die Message-Nummer entspricht dem Anker.

     

Log in to post a comment.

MongoDB Logo MongoDB