So verwalten Sie die Verfügbarkeit von Zimmern nach Tagen oder Monaten Belegung
Ich entwickle eine Rails 3-Anwendung (mit MySQL als RDMS), um die Verfügbarkeit / Belegung einiger Räume zu verwalten (es ist eine hotelähnliche App). In meinem Fall ist das Problem, dass ich im System 2 unterschiedliche Anforderungen habe, weil Ein Zimmer kann gemietet werden für:
Einige Monate (zum Beispiel 6 Monate)Einige Tage / Wochen / WochenendenEs ist klar, dass die App für jedes Zimmer an einem bestimmten Datum anzeigen muss, ob es verfügbar ist oder nicht und welcher Benutzer mietet. Auf der anderen Seite kann ein Benutzer einen Raum nach einem bestimmten Datumsbereich durchsuchen. Der Datumsbereich kann ein fester Datums- oder ein Monatsbereich sein (z. B. von September bis März), und ich weiß, dass dies nichts mit dem Datenbank-Entwurf zu tun hat, aber ich muss es berücksichtigen.
Um dieses System auf effiziente Weise zum Laufen zu bringen, habe ich mir überlegt, eine Tabelle YEAR zu erstellen, die aus einem Verweis auf den Raum und einem Array (1 Jahr) von 365 Elementen besteht, wobei jedes Element 0 oder 1 sein kann, wobei 0 verfügbar und 1 bedeutet bedeutet vermietet.
Wenn ich diese Lösung übernehme, muss ich mit einigen Problemen rechnen:
Gibt sehr schnelle Ergebnisse zurück, wenn ein Benutzer während einiger Monate nach einem Raum sucht.Verwalten von 'Cross-Years'-Bereichen (zum Beispiel vom 20. Dezember 2012 bis zum 13. Januar 2013)Schaltjahreund als letztes möchte ich SQL-Prozeduren oder Mid-Night-Prozesse vermeiden (wenn es möglich ist)
Ich bin mir sicher, dass es bessere Möglichkeiten gibt, dieses Problem in SQL zu entwerfen. Können mir einige von Ihnen helfen? oder gibst mir einen Tip?