2012-06-21 62 views
0

我正在設計一個多日預約程序的數據庫。這就是我正在做的。我有40個「點」,客戶可以預定x天的時間。我有麻煩決定存儲這些信息的最佳方式。我正在考慮如果在某一天沒有爲某個「點」創建一行,那麼我會知道這個「點」是免費的。與每天爲每個「點」創建一行可能一年,然後如果「點」是免費的,則有一個布爾列。我的下一個問題是,我將如何多天製作一個特定的預約商店。我正在考慮有一個專欄,可以存儲前一天的主鍵。如果這一欄是空白的,我會知道這個任命是在很多的第一天,或者只是一天的預約。這很難翻譯成我可以在需要的時候重新翻譯的詞語。多日預約數據庫設計

+0

一個地點可以分配一小部分時間嗎? –

+0

不,先生。必須採取「點」一整天。 – JeremyMcGee

回答

2

由於點必須始終預訂了整整一天,我會與第一種方法去,類似於此:

enter image description here

的BOOKING.DAY是沒有時間的日期。

要檢查給定地點是否預訂給定日期,只需在BOOKING中搜索相應行的存在。要預約多天,請在APPOINTMENT中插入一行,並在BOOKING中插入幾個相應的行。

注意:此模型不會強制執行相同約會日期的連續性。如果這很重要,則必須通過非聲明方式(例如觸發器或應用程序級別)強制執行。

注意:如果您沒有任何與客戶以外的約會相關的任何信息,則可以將APPOINTMENT表完全刪除,並將客戶端直接連接到BOOKING。


替代設計,其中包含BOOKING一段時間(而不是僅僅一天)也可以做,但複雜避免重複週期(它可能會需要觸發器和細心鎖定的組合)。