sehr langen text in mysql speichern
Tim
- datenbank
hallo,
ich brauche für eine Website folgende Funktionalität:
es können sehr lange(z.T. mehrere hundert Seiten) auf der Website geschrieben und editiert werden.
Das ganze soll dann in einer Datenbank gespeichert werden. aus Größen und Performance Gründen habe ich mir gedacht das ganze auf viele kleine Textfelder Datensätze aufzuteilen.
Das Problem ist jedoch, dass die Texte online auch in bestimmten Zeitintervallen automatisch gespeichert werden sollen und ich dann ja nicht weiß in welchem Datensatz genau der geänderte Teil steht.
Eine Notlösung wäre, jede Seite einzeln zu speichern und auch immer nur eine Seite zum editieren anzuzeigen aber das macht die Sache eigentlich zu unübersichtlich.
Hat jemand eine andere Idee wie man so etwas umsetzen könnte?
Viele Grüße,
Tim
Eine Notlösung wäre, jede Seite einzeln zu speichern und auch immer nur eine Seite zum editieren anzuzeigen aber das macht die Sache eigentlich zu unübersichtlich.
Wieso ist das unübersichtlich? Für den Autor spielt es keine Rolle - oder gehts dir eher darum, dass es für den Programmierer "unübersichtlich" wird, weil es ggf. seine Fähigkeiten übersteigen könnte?
Eine Notlösung wäre, jede Seite einzeln zu speichern und auch immer nur eine Seite zum editieren anzuzeigen aber das macht die Sache eigentlich zu unübersichtlich.
Wieso ist das unübersichtlich? Für den Autor spielt es keine Rolle - oder gehts dir eher darum, dass es für den Programmierer "unübersichtlich" wird, weil es ggf. seine Fähigkeiten übersteigen könnte?
ich glaube unübersichtlich ist der falsche Begriff. ich dachte nur, dass es nicht optimal ist wenn man einen Text schreibt und an das ende einer seite kommt muss man erst auf die neue Seite warten(wenn auch nur ganz kurz) auch wenn man gerade mitten im Wort ist.
hi,
Hat jemand eine andere Idee wie man so etwas umsetzen könnte?
Die Idee "seitenweise" finde ich gar nicht mal so schlecht. Das ist zum Editieren gut, und wenn jemand mal eine Seite komplett vermasselt hat, dann ist das nur eine Seite ;)
Sofern die Ausgabe ebenfalls seitenweise erfolgen soll, passt dieses Prinzip auch.
Hotti
Hat jemand eine andere Idee wie man so etwas umsetzen könnte?
Die Idee "seitenweise" finde ich gar nicht mal so schlecht.
Wie wäre es mit "absatzweise"? "Seitenweise" folgt einer übergestülpten, nur an das Ausgabemedium Papier gebundenen Struktur und führt damit zu Problemen. "Absatzweise" folgt der Struktur der enthaltenen Information und lässt sich also besser verarbeiten.
Fred
Hello Tim,
ich brauche für eine Website folgende Funktionalität:
Die gewünschte Funktionalität heißt "Zeilenumbruch".
+----------------+ gesamter Text, in "Zeilen-Records" aufgeteilt
| |
| |
+++
| | angezeigtes "Fenster", mit dem man über den Gesamttext gleiten kann
+
| |
| |
| |
+----------------+
Den angezeigten Text kannst Du aus dem Gesamttext von einen Aufsetzpunkt aus extrahieren und dann aus den Zeilen (z.B. 10) in der Textbox zusammenbauen.
Bei jedem Scrollen über den Text muss geprüft werden, ob der sich geändert hat und ob der Ausschnitt rückgesichert werden muss.
Das Problem bei der Sache wird die Handhabung des gleichzeitigen Mehrnutzerbetriebes. Bei Einfügen und/oder Wegfall neuer Zeilen müsste nämlich geprüft werden, ob der Aufsetzpunkt neu numeriert werden muss oder ob Überlappungen der Benutzer bei der Bearbeitung vorliegen.
Da benötigst Du erstmal eine Strategie.
In verbindungsorientierten Systemen macht man sowas mittels Blockstart, Blocklänge und neutralen Zeichen. Das heißt, die Blöcke werden immer komplett gespeichert mit "Luft" im Block. Die "Luft" besteht z.B. aus dem Wert NULL. Dieser wird innder Anzeige unterdrückt. Immer, wenn mal kein Benutzer einen Block zur Änderung angefordert hat (die gesamte Datei ist frei, es liegen keine Blocksperren vor), werden die Blöcke reorganisiert, also wieder eine definierte Menge "Luft" eingebaut.
In verbindungs- und damit auch zustandslosen Systemen musst Du dir diese Infomation über Session und Zeitverhalten emulieren. Ein Block wird also zur Änderung angefordert und der User hat nun genau soundsolange Zeit, die Bearbeitung abzuschließen. Danach verfällt seine Berechtigung und der Aufsetzpunkt des Blockes muss ggf. neu positioniert und der Block neu geladen werden.
Duch einen "Ticker" kann man aber diese Offenzeit auch dynamisch gestalten. Solange der Ticker (z.B. regelmäßiger AJAX-Request) zum Block kommt, kann man davon ausgehen, dass der Client den Block noch in Bearbeitung hat und nicht seinen Browser schon zugeklappt hat.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg