Eigener Listenaufbau (Teil 5): Datenbank-Tabellen

Nachdem nun gratisseller ein wenig mehr Programmvolumen erhalten hat, will ich heute die Daten darstellen, die in einer Datenbank für gratisseller gepeichert werden müssen. Ebenso will ich ein wenig auf die Datenbank allgemein eingehen.

Doch keine Angst, hier folgt keine Abhandlung über die Datenbanktheorie mit 1.-3. Normalform oder ähnlichem. Ich möchte Ihnen nur aufzeigen, welche Daten wie gespeichert werden.

Gehen wir also direkt in medias res.

Als Tabellen in der Datenbank benötigen Sie für den gratisseller folgende Tabellen: (ich werde hier die Namen so wählen, wie sie auch im Programm gewählt werden. Sie werden das sog. Prefix vi_ auf Ihre Gegebenheiten anpassen können.

Als erstes brauchen wir die Tabelle für die Gratisprodukte (vi_gprodukt). Sie hat folgende Felder:

(Die rötlich unterlegten Felder sind Schlüsselfelder; die bläulich unterlegten Felder sind Verweise auf Felder in anderen Tabellen)

Feld

Typ

Kommentare

ID varchar(8) Eindeutige ID
title varchar(100) Titel des Produktes
locdir varchar(100) Lokales Verzeichnis
webdir varchar(100) Web-Verzeichnis
filename varchar(120) Dateiname
accmailfile_SIE varchar(100) Dateiname accept mail Anrede SIE
accmailfile_DU varchar(100) Dateiname accept mail Anrede DU
auslmailfile_SIE varchar(100) Dateiname auslieferungs mail Anrede SIE
auslmailfile_DU varchar(100) Dateiname auslieferungs mail Anrede DU
followmailfile_DU varchar(100) Dateiname follow up mail Anrede DU
followmailfile_SIE varchar(100) Dateiname follow up mail Anrede SIE
anrede varchar(3) Anrede in Mail
myemail varchar(100) Email Verkäufer
myemailname varchar(50) Emailname Verkäufer
myhome varchar(100) Verküäufer Homepage
modified datetime Modifiziert am (YYYY-mm-dd hh:mm:ss)
muserid varchar(12) for future use

Warum all diese Felder?

In vi_gprodukt werden Ihre Gratisprodukte festgehalten. Der Schlüssel dieser Tabelle ist ein 8-stelliger String in dem man z.B. MARKET01 eingeben kann, um das Produkt eindeutig zu bestimmen. Dieses Tabellenfeld „ID“ ist auch als Tabellenschlüssel in der Tabelle definiert und muss über die ganze Tabelle eindeutig sein (der sog. UNIQUE-Schlüssel der Tabelle).

Dann wird das Gratisprodukt mit dem Feld title beschrieben. Hier kommt der Titel Ihres Produktes hinein! Nun folgen Verwaltungsfelder, die alle Daten enthalten, um eine Email an Ihren „Kunden“ zu schreiben.

Wie ich in den vorherigen Artikel ja schon berichtet habe, werden die Mails auf sog. Skelett-Dateien im Webspace gehalten. Dies gilt für die Akzeptierungmail (OptIn1) und die Auslieferungsmail (OptIn2) aber auch für den FollowUp-Newsletter. Es muss dafür in der Datenbank festgehalten werden, wie diese Dateien heißen.

Da ich ein „Verfechter“ des Localhosts bin, weil ich derartige Programme nicht im Web für alle sichtbar entwickeln will, muss ich bei Dateien immer den Webspace oder den Localhost unterscheiden. Fast alle meine Programme haben diese Möglichkeit, sie laufen auf dem Localhost und auf dem Web. (Wenn Sie mehr über diese Möglichkeit wissen wollen, dann können Sie  meinen Artikel über den Localhost lesen.) Deshalb sind in gratisseller die Verzeichnisse im Web und lokal von den Dateinamen getrennt in der Datenbank gespeichert.

Über die Mail-Skelette habe ich ja schon im Teil 3 des Blogs berichtet. Hier ist nun der Teil, wo die Skelett-Dateien in der Datenbank festgehalten werden, damit  gratisseller sie erreichen kann. Da wir ja auch noch die Anrede (Du und Sie) in der Mail unterscheiden, müssen wir hier auch dies unterscheiden. Gesteuert wird die Anrede in der Mail über das Feld „anrede“, das die Werte „DU“ und „SIE“ enthalten kann. (Unsere Sprache erlaubt es leider nicht, 2 Texte mit unterschiedlicher Anrede automatisch zu erstellen, deshalb ist hier Tipparbeit angesagt 🙁 ).

Die nächsten Verwaltungsfelder sind für die „Abschiedformel“ in der Mail und das Versenden der Mail selbst. In myemail steht Ihre Emailadresse, während in myemailname Ihr Name oder Ihre Firma steht. (myemailname ist die Angabe, die Sie bei Emails im Outlook als Absender sehen. Hier steht ja nicht immer Ihre Emailadresse sondern auch Ihr Name). Auch den Verweis auf die Homepage (Verkaufsseite) Ihres Artikels wird in das Email-Skelett aufgenommen.

Zum guten Ende kommen noch 2 Tabellenfelder (modified, muserid), die ich eigentlich immer in Tabellen aufnehme, um zum einen festzuhalten, wann der Satz das letzte Mal geändert wurde und wer das tat. muserid ist hier als „future use“ beschrieben, da gratisseller im Moment noch keine Benutzer kennt. Evtl. könnte man gratisseller später mal einen sog. Login-Schrim geben, um gratisseller mehr abzusichern. Dies ist aber im Moment noch nicht vorgesehen, und bedingt auch einige weitere Anpassungen an die Datenbank – Sichwort Session-Handling. Auf diesen Punkt werde ich wohl ein anderes Mal eingehen müssen.

In der nächsten  Tabelle halten Sie  die Email-Adressen Ihrer Kunden für die einzelnen Produkte fest. Dies ist die Tabelle  vi_gadressen. Sie hat folgende Felder:

Feld

Typ

Kommentar

ID bigint(20) Eindeutige ID
del varchar(1) Gelöscht 0 |1
produktid varchar(8) ID des Produktes in vi_gprodukt
email varchar(100) email des Bestellers
vorname varchar(50) vorname des Bestellers
nachname varchar(50) nachname des Bestellers
emailtype varchar(5) html | text
opt1sent varchar(1) OptIn1 ist gesendet (1|0)
opt2sent varchar(1) OptIn2 ist gesendet(1|0)
optfollow varchar(1) Followup gesendet (1|0)
accepted varchar(1) Besteller hat azeptiert (1|0)
sent varchar(1) Nein
sent_date datetime Nein
create_date datetime angelegt (YYYY-mm-dd hh:mm:ss)
follow_sent datetime followup gesendet am (YYYY-mm-dd hh:mm:ss)
webdir varchar(255) Nein
modified datetime Satz modifiziert am (YYYY-mm-dd hh:mm:ss)

Im Gegensatz zur ersten Tabelle wird hier ein Tabellenschlüssel ID verwendet, auf den Sie kaum Einfluss haben. Dieser Tabellenschlüssel ist zwar auch UNIQUE, aber er hat das Attribut „Auto-Increment“. Das bedeutet, der Schlüssel ist eine Zahl, die von der Datenbank fortgeschrieben wird. (Die Datenbank zählt einfach die eingefügten Sätze in der Tabelle durch)

Dann haben wir ein bläulich unterlegtes Feld mit dem Namen produktid, es enthält so zu sagen einen Zeiger auf den zugehörigen Produktsatz. Dieser Zeiger bestimmt welches Produkt der Käufer bestellt hat. (Das Feld ist selbst ein Schlüssel und beinhaltet den Wert des Schlüssels in der Produkttabelle. Man sagt auch Fremdschlüssel zu einem solchen Feld).

Die weitern Felder der vi_gadressen beziehen sich auf den Kunden, und beschreiben so zu sagen seine „Vergangenheit“. Hat er die ausgesendete OptIn1 beantwortet? Ist OptIn2 gesendet worden? Ist auch ein Followup schon an den Kunden gegangen?

Mit dem Feld emailtype wird festgehalten, ob der Kunde Newsletter in html oder reinen Textmails will. Dieses Feld steht zunächst auf text und kann vom Kunden via eines Links im Newsletter auf html umgestelt werden. Ab diesem Zeitpunkt erhält der Kunde html-Newsletter, die man besser aufbereiten kann. (Da fast alle Internetmarketer dieses Feature nicht haben, ist gerade am Anfang Ihres Marketer-Darseins dieser Layout-Trick ggf. für Sie von Vorteil, und Sie werden mehr beachtet 🙂 )

Alle anderen Felder der vi_gadressen sind aus der Tabellenbeschreibung eigentlich selbsterklärend, oder?

So das waren die beiden ersten Tabellen von gratisseller. Ggf. werden vielleicht noch ein paar Felder hinzukommen, bis gratisseller fertiggestellt ist.

Falls Sie Fragen oder Unklarheiten haben, dann schreiben Sie mich bitte an. Auch über Kommentare freue ich mich immer.

Gruß

Bernd Klüppelberg

Artikel, die auch noch interessieren könnten

Bisher gibt es keinen Kommentar. Schreiben Sie einen Kommentar!

Schreibe einen Kommentar