handschellenforum.de Foren-Übersicht handschellenforum.de
Das Forum rund um Handschellen
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 
Adventskalender 2010

Technik hinter meiner Handschellendatenbank

 
Neues Thema eröffnen   Neue Antwort erstellen    handschellenforum.de Foren-Übersicht -> Offtopic
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ew



Anmeldungsdatum: 14.07.2006
Beiträge: 40
Wohnort: Leipzig

BeitragVerfasst am: So Jan 27, 2008 4:32 pm    Titel: Technik hinter meiner Handschellendatenbank Antworten mit Zitat

Hallo,

da einige Leute Interesse daran gezeigt haben, möchte ich an dieser Stelle die Technik hinter meiner Handschellendatenbank (http://hc.gtrs.de) etwas näher erläutern.

Beginnen möchte ich mit dem Aufbau der eigentlichen Datenbank:

Die Datenbank selbst habe ich mit SQLite erstellt, einer Datenbank-Engine, die ohne einen Dienst auskommt, der im Hintergrund läuft. Man hat also nur eine Datei, auf die man "connected", was nichts anderes ist, als sie zu öffnen. "connected" heißt es deswegen, weil man normalerweise bei SQL-Datenbanken sich zu einem Server verbindet mit dem man dann interagiert. Hier entfällt der Server einfach.

Herzstück ist dort die Tabelle item, die eine Auflistung der einzelnen Stücke enthält. Die Angabe zum Hersteller habe ich in die Tabelle manufacturer ausgelagert. Dies habe ich ebenfalls mit der Verbindung (connection), dem Material (material), der Oberfläche (finish) und dem eigentlichen Restriktionstyp (restricts = z.b. Handschelle, Fußschelle, etc.) gemacht. In der Tabelle item sind diese Eigenschaften alle nur über einen ganzzahligen Schlüssel referenziert.

Der Zugriff auf die Datenbank wird für das Frontend nun abstahiert:

Ich habe eine Klasse Database geschrieben, die den Zugriff auf die Datenbank kapselt. Weiterhin gibt es eine Klasse Query, die die eigentliche Abfrage durchführt. Ich erstelle einfach ein Query-Objekt, kann dort einige Einschränkungen setzen und lasse das Datenbank-Objekt die Abfrage verarbeiten. Als Ergebnis erhalte ich eine fertige Liste mit den Ergebnis-Objekten, die ich nur noch zur Tabelle formatieren muss.
Vorteil dieser Kapselung besteht darin, dass ich recht einfach das Datenbanksystem austauschen kann (z.B. MySQL statt SQLite).

Nun gibt es noch das Skript, das der Besucher aufruft. Bei jedem Aufruf wird eine entsprechende Query erzeugt und abhängig von den übergebenen Optionen die entsprechenden Einschränkungen in der Query gesetzt. Auch in dem Skript enthalten ist noch eine Funktion, die das Ergebnis der Query in eine Tabelle formatiert und die Links entsprechend reinsetzt.

Die Bilder stellen noch einen Sonderfall dar: In der item Tabelle gibt es eine Spalte, in der ein Verzeichnis angegeben ist. Das wird so bis zum Frontend-Skript durchgereicht. Dort wird dann nachgeschaut, ob das Verzeichnis existiert und eine Datei 1-tn.jpg ("Thumbnail") existiert. Falls ja, wird das Bild eingebunden und falls auch die Datei 1.jpg existiert, ein Link darauf gesetzt. (Ok, meine "Thumbnails" sind etwas größer als ein Daumennagel Wink ). Das wird dann in einer Schleife für 2-tn.jpg usw. fortgesetzt, bis keine solche Datei mehr gefunden wird.

Meine Wahl der Programmiersprache ist auf Python gefallen. Ich verwende Python schon etwas länger, um verschiedene Aufgaben auf meinen Servern zu automatisieren. Da lag es mir nahe, einfach mal Python auch für Webprogrammierung einzusetzen. Um das dann auszuprobieren brauchte ich ein konkretes Projekt und da lag es nahe, einfach mal meine Sammlung im Web zu präsentieren.

Ich hoffe, dass ich das jetzt nicht zu verworren geschrieben habe und etwas Licht ins Dunkel gebracht habe. Falls noch Fragen offen sind, beantworte ich die natürlich gerne.

Viele Grüße

ew[/url]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    handschellenforum.de Foren-Übersicht -> Offtopic Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Datenschutzerklaerung und Impressum
Powered by phpBB 2 © 2001, 2002 phpBB Group