1

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

2

Re: Brauch mal Hilfe beim Datenbankdesign

also erstmal:

ich verstehe den Sinn der "ID" in der Preise Tabelle nicht:
Wenn Du eh schon für die jeweilige Woche nen PK hast, und auch einen für die Wohnung, dann ergibt sich dadurch doch schon eine eindeutige Kombination, die als "Primärschlüssel" für die Preise gilt.
Was die Buchung angeht:

Kunden-ID|Wohnungs-ID|Termin-ID|Zahlungseingang (datum)?| Buchungsdatum

HTH, tink

Beleidigungen sind die Argumente derer, die keine Argumente haben

3

Re: Brauch mal Hilfe beim Datenbankdesign

Hm .. oki es muss nicht jede Tabelle ne ID haben ;o) Die Tabelle für die Buchung ist am einfachsten finde ich. Die wichtigsten Überlegungen müssen für die "Haupttabellen" gemacht werden .. vorallem wegen den Reservierungen und dgl. Hast da evtl. ne Idee zu ner besseren Struktur ...

_______________________________________________________________

/-/annes (j|g) ... http://www.jg-webdesign.de

Re: Brauch mal Hilfe beim Datenbankdesign

Hi j|g!

Ich denke, du solltest in deiner "Tabelle 1" (Wohnungen) das Feld "Personen" aufsplitten: "Minimum-Belegung" und "Maximum-Belegung". Damit kannst du schonmal gucken, wie die Wohnung überhaupt belegt werden darf.

Mamphil

The laws of physics are the canvas God laid down on which to paint his masterpiece. “Leonardo Vetra” in Dan Brown’s “Angels & Demons”

5

Re: Brauch mal Hilfe beim Datenbankdesign

Hmm... die "Preise" und die "Buchungen" sind evtl. eine Tabelle...
zumindest könnte ich mir vorstellen, diese Teile zu vereinen.

Ansonsten sieht´s ziemlich gut aus, denn zu jeder "Hauptentität" gibt´s ne eigene Tabelle:
- Wohnung
- Termin
- Kunde
- Buchung (die ja im Prinzip den Link zwischen allen 3 darstellt)

tink

Beleidigungen sind die Argumente derer, die keine Argumente haben