Thema: Brauch mal Hilfe beim Datenbankdesign
Hallo Leute,
ich arbeite gerade an einem Projekt für nen Freund, der gerne eine
Buchungsmöglichkeit seiner Ferienwohnungen via Internet anbieten
möchte. Ich bin mir dabei noch nicht einig, wie ich die Datenstruktur
am sinnvollsten aufbereite.
Evtl. könnt Ihr mir da ja ein wenig mit Ideen und Rat zur Seite stehen
;o) Hier mal die Anforderung (in etwa) und die Überlegungen von mir.
Kurzbeschreibung:
- 100 Wohnungen
- Größe zw. 2 - 8 Personen
- 4 Kategorien ( 1-5 Sterne)
- Buchbar von Sa auf Sa innerhalb eines Zeitraums von
16 Wochen (dez - märz)
- Manche Wohnungen sollen mit verschiedener Personenzahl
buchbar sein (andere nur mit den fixen Personenangaben)
Über diesen Datenbestand soll eine Suche erfolgen, mit der
man die Inhalt über die folgenden Kriterien selektieren
soll:
- Tag der Anreise (ein Sa)
- Dauer
- Personenzahl
- evtl. Kategorie (muss vorerst nicht sein)
- variable Größe kann eine flexible Suche nach
dem gewünschten Anreisdatum von +/- 1 Woche sein
Soda, nun überlege ich mir hierzu die Datenstruktur. Dabei
dachte ich für die erste Überlegung an drei Tabellen:
1. Wohnungen
Hier sind die Informationen zu allen Wohnungen hinterlegt.
+----+------+-----------+----------+-----------------
| id | Name | Kategorie | Personen | Beschreibung ...
+----+------+-----------+----------+-----------------
id = forlaufende nummer (primary key)
Name = Name der Wohnung
Kategorie = Wieviel Sterne hat diese Wohnung (von 1-5)
Personen = Wieviel Personen fasst diese Wohnung
Beschreibung = Infotext zu dieser Wohnung
2. Preise
Darin sind alle Preise der jeweiligen Wohnungen zu den entsprechenden
Terminen hinterlegt.
+----+---------------+-----------+-------+--------+-----------
| id | (wohnungs-ID) | termin-ID | Preis | Anzahl | Status ...
+----+---------------+-----------+-------+--------+-----------
id = forlaufende nummer (primary key)
wohnungs-ID = Beziehung zur Wohnung in der Wohnung-Tabelle
termin-ID = Beziehung zur Terminwoche in der Termin-Tabelle
(Anmerkung: Zu jeder Wohnung gibt es max. 16 Wochen,
die man belegen kann).
Preis = der Preis für diese Woche
Anzahl = notwendige Belegung
Status = reserviert || gebucht || frei
3. Termine
Hier sind alle verfügbaren Termine hinterlegt (also pro Woche ein Eintrag)
+----+-------+---------
| id | Start | Ende ...
+----+-------+---------
id = forlaufende nummer (primary key)
Start = Startdatum (immer ein Sa)
Ende = Enddatum (immer ein Sa)
Anforderung:
- Bei einer Buchungsanfrage muss für die ausgewählte Wohnung im
entsprechenden Zeitraum der Vermerk reserviert hinterlegt sein.
Damit kann ein Anderer diese Wohnung nicht mehr buchen.
Problem:
- Es muss eine Logik her, wie man für eine Wohunung die entsprechenden
Buchungen in der Datenbank hinterlegt und zwar so, um unnötige
Datensätze zu vermeiden.
Es sind für jede der insg. 100 Wohnungen 16 Wochen belegbar.
Oki .. dann folgt natürlich noch ne Tabelle, in der die Kunden aufgenommen
werden und die dazugehörigen Buchungen hinterlegt sind (also wohl 2 Tabellen,
Kunden + Buchungen).
Jau, dann freue ich mich mal auf Anfregungen, Ideen und Lösungsansätze ..
c'ya
Hannes
/-/annes (j|g) ... http://www.jg-webdesign.de