Stephan Huber: Langer Text zu Anfängerfragen, aber bitte trotzdem lesen!

Beitrag lesen

Hallo Bernhard,

zuerst 'mal ein Lob :-), für jemand, der bis jetzt nichts mit Datenbanken zu tun hatte, hast du einen der häufigsten Fehler vermieden, nämlich alles in eine große Tabelle a-la Excel zu packen, und damit viele Informationen x-mal zu speichern. Deine Tabellenstruktur ist bis auf ein paar Einzelheiten durchaus richtig.
Grundsätzlich hört sich Deine Beschreibung so an, als würdest Du das ganze dann über das Filesystem implementieren, also ohne Datenbankserver. Das geht, ich würde aber empfehlen, daß Du dich lieber mal 1-2 Tage hinsetzt, dich mit dem DBI-Modul und SQL auseinandersetzt, und es mit einer richtigen Datenbank machst, daß erspart Dir im Endeffekt viel Arbeit (und Du hast was nützliches dazugelernt ;-)).

In die Übersichtsdatei würde ich einfach mal alle Kurse (pro Bereich)reinschreiben und zwar in jede Zeile ungefähr so:

KursNr::KursTitel::Untertitel::KurzeBeschreibung::LinkAufDieDetail-Datei

Das listet dann die Kurse für den gewählten Bereich auf. das Detailprogramm lege ich in eine Datei kursTitel.data oder so. Dort möcht ich dann folgendes (zeilenweise) reinschreiben:

Zielgruppe:: ....\n
Kursinhalt:: ....\n

Da in den beiden Tabellen keine Daten doppelt vorkommen können, kannst Du das ruhig in einer Tabelle zusammenfassen, außerdem brauchst Du noch ein Feld für Bereich. 'LinkAufDieDetail" kannst Du Dir sparen, das kann man in SQL einfacher machen, s.u..

Da es für einen Kurs mehrere Termine und Orte gibt, speichere ich
die separat in einer kursTitel.term oder so. Und zwar pro Zeile einen Termin + Ort und Zeit, sowie Platz für Zusatzinfos wie: Ausgebucht, Neu, Terminänderung, ...

und die KursNr des Hauptdatensatzes brauchst Du dann natürlich noch.

» - Ist die Datei-Benennung geschickt (kursTitel.data/term), oder sollte ich besser eigene Nummern vergeben und diese in den Dateinamen bringen? Ich brauch ja irgendwas, damit ich nicht lange nach der Detail-Datei ;-) suchen muss!

Das ist ein Problem, daß Du mit einer richtigen Datenbank nicht mehr hast, Du findest den Detaildatensatz per SQL über die KursNr. Beispiel:
Die Hauptdatei ruft die Detaildatei mit "detail.cgi?kursnr=27" auf, in dem Skript der Detaildatei hast du dann den SQL-Befehl "SELECT * FROM termine WHERE KursNR=27".
Wegen der Performance brauchst Du Dir bei so einem Projekt wohl wirklich keine Sorgen machen, so einfache Datenbanken laufen auch auf normalen Webservern bis zu ca. hundertaused Datensätzen und ebensovielen Zugriffen/Monat ohne Probleme, solange Du nicht wirklich komplizierte Abfragen machst, und danach sieht es nicht aus.

  • Solte ich besser Seifenfabrikant o.Ä. werden, aber bitte um Himmelswillen meine Finger vom Programmieren lassen ;-)

Soweit ich das beurteilen kann, sicher nein, aber falls Du zufällig das umweltfreundliche Geheimrezept für ein Vanilleschaumbad mit nach Vanilleeis schmeckenden, schimmernden Blasen in der Schublade hast, behalte ich mir vor, das Urteil zu revidieren ;-)

Viele Grüße
Stephan