Sven Rautenberg: Indizes um Dokumente zu referenzieren: Sinnvoll?

Beitrag lesen

Moin!

Machte eine Homepage mit einem "höchst" primitiven CMS. Beiträge/Artikel/Dokumente werden mit einer eineindeutigen ID in der Datenbank verlinkt. Hier entstand ein kleines Problem:
Wenn die Daten eingelesen werden (setup - Programm), waren die ID's nicht konsistent auf allen Systemen (lokaler PC und Webserver), da die Dokumente nicht in gleicher Reihenfolge eingelesen wurden. Dieses Problem liesse sich ja einfach ändern, aber was passiert, wenn ein neuer Eintrag in das System eingefügt wird, bzw. lokal und online andere Einträge veröffentlich werden? - Die ID's stimmen - auf Teufel komm raus - nicht überein und die Dokumente sind völlig falsch verlinkt... Bekanntes Problem??? - Hab mir mal einige Gedanken zu einer "besseren" Lösung gemacht und vielleicht hilfts wem, bzw. hat jemand einige guten/konstruktiven Kommentare hierzu:

Der einzige Kommentar, der mir dazu einfällt: Die ID ist elementarer Bestandteil der Datenstruktur. Wenn du also Artikel zwischen Systemen transferierst, mußt du logischerweise auch die IDs transferieren. Sowas ist alles machbar, da ja im Prinzip nur die Daten einer Datenbank dupliziert werden müssen - die Tabellenstruktur sollte dabei natürlich identisch sein, aber das gleiche DBMS muß nicht verwendet werden.

Insofern ist nicht die Methode fehlerhaft, sondern dein bisheriges Vorgehen, das Livesystem zu aktualisieren. Ich hatte jedenfalls noch keine derartigen Probleme.

Sobald eine ID wechselt (z. B. weil der Artikel auf gewissen Systemen anders in die Datenbank eingeordnet wird) stimmen alle Links nicht mehr.

Das muß eben einfach verhindert werden - und es kann verhindert werden, und auch vollkommen ohne Magie. Einfach die geforderte ID mit in die neue Datenbank einfügen. Die Datenbank wird sich im Zweifel schon melden, wenn du eine Unique ID zweimal vergeben willst - dann ist klar, daß irgendwas falsch gelaufen ist, und du statt INSERT vielleicht lieber UPDATE machen willst.

Die ID sagt eigentlich überhaupt nichts über den Inhalt des Dokumentes aus; es ist eine abstrakte und willkührliche Bezeichnung für ein Dokument.

Die ID ist das einzige wirkliche Erkennungsmerkmal, welches auch bei Änderungen des Dokuments konstant bleibt. Sie wird ein einziges Mal vergeben: Beim Neuanlegen eines Dokuments. Danach bleibt sie eindeutig diesem Dokument zugeordnet bis zum Ende der Welt[1]. Nur so funktioniert es. Alles andere, insbesondere deine Keyword-Raterei, funktioniert nicht, oder nicht zuverlässig. Das sind dann eher Suchmaschinen (die ja auch was nettes an sich haben können).

- Sven Rautenberg

[1] Wobei als Ende der Welt wahlweise der Entropietod, die Wandlung unserer Sonne zum Roten Riesen, kosmische Katastrophen, fortschreitende Umweltzerstörung oder kriegerische Auseinandersetzungen zur Wahl stehen.