Um die Datenbank zu verkleinern soll eine Auslagerung der Artikelbeschreibung auf Festplatte erfolgen.
Die Auslagerung soll mit dem folgenden Pfad erfolgen:
Code: Alles auswählen
C:\Programme\baywotch3\desc\#START_YEAR#\#START_MONTH#\#START_DAY#\#ARTICLE_NO#.htm
wichtige Einschränkung:
Nach der Auslagerung der Artikelbeschreibungen kann NICHT mehr in der Artikelbeschreibung nach Begriffen gesucht werden.
Teil-Lösung: Anzeige der ausgelagerten Dateien
Um ein weiteres normales Arbeiten mit Baywotch zu ermöglichen (Anzeige der Artikeldaten) ist es notwendig die ausgelagerten Beschreibungen in Baywotch einzubinden.
Bei der Auslagerung wurde jede Artikelbeschreibung mit folgendem Text ersetzt:
Code: Alles auswählen
<export>
<export_date>#DATE#</export_date>
<export_agent>BayWotchTool::Export::Description</export_agent>
<export_path_base>C:\Programme\Baywotch3\desc\</export_path_base>
<export_path_detail>#START_YEAR#\#START_MONTH#\#START_DAY#\</export_path_detail>
<export_path_file>#ARTICLE_NO#.htm</export_path_file>
<export_path_full>C:\Programme\baywotch3\desc\#START_YEAR#\#START_MONTH#\#START_DAY#\#ARTICLE_NO#.htm</export_path_full>
</export>
um dann noch die richtige Datei anzuzeigen habe ich in der Datei desc.htm folgenden Code im Header ergänzt:
Code: Alles auswählen
...
</style>
<script language="JavaScript" ><!--
function onLoadDesc(){
var myNode = document.getElementsByTagName("export_path_full")[0]
if( myNode==null){
//alert("normale Artikelbeschreibung");
} else {
//alert("ausgelagerte Artikelbeschreibung");
var fileName = document.getElementsByTagName("export_path_full")[0].nextSibling.nodeValue;
document.location.href = "file://"+fileName;
}
}
//--></script>
</HEAD>
<BODY onload="onLoadDesc();">
...
Funktion:
sobald die Seite geladen ist wird geprüft, ob "export_path_full" existiert und dann die entsprechende Seite nachgeladen.
Man merkt keinen Unterschied bei der Darstellung von internen und externen Beschreibungen.
Teil-Lösung: Auslagerung der Dateien
Zur Vorbereitung habe ich eine Kopie der Datei DESC.HTM --> DESC_EXPORT.HTM erstellt, in der nicht das oben beschriebene Script enthalten ist.
Mein Programm durchläuft dann alle Datensätze und lagert die Daten in das entsprechnde Verzeichnis aus.
Um nur bestimmte Datensätze (bestimmte Folder oder vor einem Datum) zu exportieren kann man normal die Einschränkungen der SQL-Abfrage anpassen.
Der Beschreibungstext wird dann immer in der Datei DESC_EXPORT.HTM bei %%article_desc%% eingesetzt und als neue Datei im entsprechenden Pfad (welcher evtl generiert werden muß) gespeichert.
Die Beschreibung in der Tabelle tblAuction wird dann jeweils durch den oben gezeigten Text mit Informationen zum Speicherort ersetzt.
Für diesen Export habe ich mir auch ein Java-Programm geschrieben. (Hinweis: den code dafür habe ich jetzt nicht hier mit angezeigt)
*** ergänzt am 27.07.2005 ***
Vor- und Nachteile
Vorteil:
- Größe der Beschreibungsdaten nur durch Festplatte beschränkt
- keine Änderungen in der Baywotch-Datenbankstruktur notwendig
- nahtlose Integration der internen und der externen Artikelbeschreibungen
- kein Unterschied bei der Anzeige (egal ob intern oder extern)
- genug Platz in der Datenbank wird geschaffen (ca.90% werden frei).
Nachteil:
- keine Suche mehr in Artikelbeschreibung möglich.
Haupt-Funktion:
- Nachlade-Trick: das Nachladen erfolgt nicht durch Baywotch, sondern durch eine URL-Umleitung bei der Anzeige im integrierten Vorschaufenster durch den Internet-Explorer.