langfristige Vorausplanung von Parse-Techniken
Eddie
- programmiertechnik
Hallo da draussen!
Ich habe meine kleine feine Datenbank mit VIEL Text. Wobei sich im Grunde zwei verschiedene Bloecke abwechseln, bzw. wiederholen.
Diese Bloecke muss ich irgendwie markieren, also z.B. so:
<TEXTAREA_1>inhalt1</TEXTAREA_1>
<TEXTAREA_2>inhalt2</TEXTAREA_2>
<TEXTAREA_2>inhalt3</TEXTAREA_2>
<TEXTAREA_1>inhalt4</TEXTAREA_1>
Grundlegend wird es dabei bleiben, es werden also keine weiteren Bloecke dazukommen.
Die Inhalte koennen BESTIMMTE HTML-Tags enthalten (á la <b>fett</b>).
Das ist der aktuelle Stand.
Ueber die Jahre soll allerdings auch folgendes moeglich sein:
<TEXTAREA_2>erster Abschnitt
<WISSEN>zweiter Abschnitt</WISSEN>
blabla
<UNTERHALTUNG>gehn zwei typen durch nen Tunnel, der andere hat auch 5 Mark </UNTERHALTUNG>
blabla, unwichtiges Geschwafel, Details...
</TEXTAREA_2>
Das ganze soll je nach Anforderung entsprechend markiert dargestellt werden, oder auch nicht, oder es soll sogar moeglich sein, in der Datenbank gezielt nach UNTERHALTUNG suchen zu koennen, wobei dann NUR der entsprechende Inhalt ausgegeben wird (mit Link zum Kontext).
Wie wuerdet Ihr da vorgehen?
Regulaere Ausdruecke?
XML? (wuerd ich gern vermeiden...)
Direkt per Datenbankabfrage?
Kombinationen?
und das ganze laeuft ueber MySQL, PHP, Apache.
Wie nicht anders zu erwarten :-)
Hi,
Wie wuerdet Ihr da vorgehen?
ein Beispiel ist leider keine vollständige Aufgabenstellung.
Ich kann Deinen Angaben nicht entnehmen, ob Deine Dokumentstruktur
dauerhaft schön in einer relationalen Datenbank darstellbar sein wird
oder ob sie rekursive bzw. tief geschachtelte Elemente enthalten kann,
was dann eher für XML sprechen würde.
Regulaere Ausdruecke?
Damit alleine wirst Du wahrscheinlich nicht glücklich werden.
(Für CH3-Sprachen ja - für CH2-Sprachen schon nicht mehr.)
XML? (wuerd ich gern vermeiden...)
Für geschachtelte Strukturen könnte ich Dir nichts besseres vorschlagen.
Insbesondere ist eine in XML geschriebene DTD vergleichsweise
änderungsfreundlich, während das bei einem Datenbankschema in
Arbeit ausarten kann, wenn Du eine Tabelle in mehrere zerbrechen
und diese danach per JOINs wieder verknüpfen mußt.
Direkt per Datenbankabfrage?
Falls die relationale Zerlegung sauber funktioniert, ist das ein
solider Ansatz.
Das legt Dir aber Randbedingungen auf - ein einziges zusätzliches
Element kann ggf. Deine Tabellenstruktur über den Haufen werfen.
Du solltest hier also genau wissen, was dazu kommen darf und was nicht.
Kombinationen?
Kann ich mir nur schwer vorstellen.
Es sei denn, alle Deine strukturierten Unter-Elemente müssen inhaltlich
nicht mehr teilbar sein - dann wäre eine relationale Datenbank für die
(sehr seriell wirkende) Oberstruktur mit Verweisen auf die ggf. extern
als XML-Dateien gespeicherten "Blätter" denkbar (und sinnvoll).
Viele Grüße
Michael
Ich kann Deinen Angaben nicht entnehmen, ob Deine Dokumentstruktur
dauerhaft schön in einer relationalen Datenbank darstellbar sein wird
oder ob sie rekursive bzw. tief geschachtelte Elemente enthalten kann,
was dann eher für XML sprechen würde.
Das Ganze wuerde als ein einziger zusammenhaengender Eintrag vorliegen, praktisch nicht geschachtelt (max Tiefe 2).
Koennte genausogut als Datei vorliegen. Die Standardansicht wird auch in der hoechsten Entwicklungsstufe immer das gesamte Dokument sein, wobei alle internen Tags keine Rolle spielen wuerden.
Regulaere Ausdruecke?
Damit alleine wirst Du wahrscheinlich nicht glücklich werden.
(Für CH3-Sprachen ja - für CH2-Sprachen schon nicht mehr.)
Was ist das? Googlesuche ergibt hunderttausend Chapter-Abkuerzungen und ein paar chemische Verbindungen...
Insbesondere ist eine in XML geschriebene DTD vergleichsweise
änderungsfreundlich, während das bei einem Datenbankschema in
Arbeit ausarten kann, wenn Du eine Tabelle in mehrere zerbrechen
und diese danach per JOINs wieder verknüpfen mußt.
Wie gesagt, muesste ich nicht. Ist alles am Stueck.
mmh, immer noch recht unentschieden und nachdenklich...
Noch ein Problem ist, dass ich die erste Version (also nur die beiden Hauptbloecke) so schnell (und einfach) wie moeglich fertig bringen will. Vielleicht mache ich eine vorlaeufige Version nur mit RegEx.
Ist gerade alles ein bisschen zeitkritisch, man hat ja auch ein Semester, das bald wieder anfaengt...
Gruss - Eddie
Hi Eddie,
(Für CH3-Sprachen ja - für CH2-Sprachen schon nicht mehr.)
Was ist das? Googlesuche ergibt hunderttausend Chapter-Abkuerzungen
und ein paar chemische Verbindungen...
der Suchbegriff lautet "Chomsky".
(CH3 => endlicher Automat, CH2 = Kellerautomat usw.)
Viele Grüße
Michael
Hi!
Vermutlich wird das mit XML das beste sein, aber da kenne ichmich leider nicht aus. Wenn Du aber auf XML verzeichten willst, könntest Du ja HTML-Kommentare verwenden, um dei Berreiche zu kennzeichnen, sowas wie
<!-- WESSEN:START -->der tolle text<!-- WESSEN:ENDE -->
Der Vorteil, Du mußt das nprmalerweise nicht parsen, es kann normal angezeigt werden, Du kannst aber relativ einfach und sicher nach
<!-- WESSEN:START -->(.*?)<!-- WESSEN:ENDE --> parsen und durch
<b>$1</b> ersetzen, so sind alle "WISSEN-Teile" Fett!
Grüße
Andreas