我最近被問及一個假設的基於網絡的預訂系統的面試問題,以及我將如何設計數據庫模式以儘量減少重複並最大限度地提高靈活性。數據庫模式 - 預訂/可用性系統
用例是一個管理員將一個屬性的可用性輸入到系統中。可能會有多個時間段設置。例如,2009年4月1日至2009年4月14日以及2009年7月3日至2009年7月21日。
然後,用戶只能在具有相同或更短期限的期間內進行預訂。
如何將這些信息存儲在數據庫中?
你會使用一些簡單的(真正簡化的);
AVAILABILITY(property_id, start_date, end_date);
BOOKING(property_id, start_date, end_date);
那麼您可以輕鬆構建一個網頁,顯示可用性的日曆,其中包含已預訂的時間段。從這個數據庫模式構建報告會很容易嗎?它看起來很簡單嗎?
我打算建議這個。 – 2008-12-16 18:13:21