Ich erstellen gerade ein ERM für ein Zimmerbuchungssystem und stehe gerade vor folgendem Problem:
Ein Zimmer kann 2 Preiskategorien (z.B normal, erhöht) für bestimmte Zeiträume haben. Die Preise und ob ein Zimmer belegt ist sollen in einem Kalender angezeigt werden, mir geht es aber erstmal nur darum wie ich meine Tabellen am besten anlege.
Meine Idee:
table room{
id (PK)
normal price
higher price
...
}
table room_reservation{
id (PK)
room_id (FK)
start_date
end_date
status
}
In der tabelle "room" sind alle relevante daten eines zimmers sowie der Normalpreis und der erhöte Preis hinterlegt. In der Tabelle "room_reservation"
werden für jedes zimmer zeiträume hinterlegt in denen das zimmer den erhöhten preis (status = 1) oder ob das zimmer belegt ist (status = 2). Der Zeitraum mit Normalpreis wird nicht gespeichert, da immer wenn das Zimmer nicht belegt oder nicht den erhöhten preis hat davon ausgegangen wird, dass das Zimmer zum Normalpreis verfügbar ist.
Meine Frage: Ist das so sinnvoll, sieht jdn. Nachteile oder hat evtl. eine bessere Idee?
Vielen Dank für eure Unterstützung/Feedback!
Ein Zimmer kann 2 Preiskategorien (z.B normal, erhöht) für bestimmte Zeiträume haben. Die Preise und ob ein Zimmer belegt ist sollen in einem Kalender angezeigt werden, mir geht es aber erstmal nur darum wie ich meine Tabellen am besten anlege.
Meine Idee:
table room{
id (PK)
normal price
higher price
...
}
table room_reservation{
id (PK)
room_id (FK)
start_date
end_date
status
}
In der tabelle "room" sind alle relevante daten eines zimmers sowie der Normalpreis und der erhöte Preis hinterlegt. In der Tabelle "room_reservation"
werden für jedes zimmer zeiträume hinterlegt in denen das zimmer den erhöhten preis (status = 1) oder ob das zimmer belegt ist (status = 2). Der Zeitraum mit Normalpreis wird nicht gespeichert, da immer wenn das Zimmer nicht belegt oder nicht den erhöhten preis hat davon ausgegangen wird, dass das Zimmer zum Normalpreis verfügbar ist.
Meine Frage: Ist das so sinnvoll, sieht jdn. Nachteile oder hat evtl. eine bessere Idee?
Vielen Dank für eure Unterstützung/Feedback!
Kommentar