我正在一個項目上工作,我想要一些靈感或見解來解決問題。我正在撰寫一個應用程序,讓訪問者登錄到一個禱告中心(一個有許多房間的地方,人們來祈禱)。我們將整合預訂系統。現在人們可以說:「生病來吧,約會」或「我每週三過來」或「我每週來兩次」或「我每月來一次」等。時間表,時間間隔,預約等數據庫設計
我不知道如何維護這種類型關係數據庫中的信息。任何人都可以對此有所瞭解嗎?
而我該如何查詢數據庫以查找哪些人計劃在某一天訪問?
我正在一個項目上工作,我想要一些靈感或見解來解決問題。我正在撰寫一個應用程序,讓訪問者登錄到一個禱告中心(一個有許多房間的地方,人們來祈禱)。我們將整合預訂系統。現在人們可以說:「生病來吧,約會」或「我每週三過來」或「我每週來兩次」或「我每月來一次」等。時間表,時間間隔,預約等數據庫設計
我不知道如何維護這種類型關係數據庫中的信息。任何人都可以對此有所瞭解嗎?
而我該如何查詢數據庫以查找哪些人計劃在某一天訪問?
這個模式應該足以讓你開始
VISITORS
id
name
... other atomic data
RESOURCES
id
name
... other atomic data
RESERVATIONS
id
visitor
resource
fromdate
tilldate
因此,如果我想在11月19日10:00預留房號200至12:00,將有在保留記錄其中'訪問者'字段指向訪問者表中的條目,'資源'字段指向資源表中的房間200的條目,'fromdate'將等於10:00 19 -11-2012和'tilldate'將等於'12:19-11-2012'。
您可以編寫查詢,這將顯示哪些資源在某一特定日期/時間保留的,如
select resources.name, visitors.name
from resources inner join reservations on resources.id = reservations.resource
inner join visitors on reservations.visitor = visitors.id
where reservations.fromdate <= "2012-11-19 06:00"
and reservations.tilldate >= "2012-11-19 23:59"
和查詢其顯示哪些資源是免費的,在給定的時間
select resources.name
from resources
where not exists (select 1 from reservations
where reservations.resource = resources.id
and reservations.fromdate >= "2012-11-19 10:00"
and reservations.tilldate <= "2012-11-19 12:00")
如果有人說「我每週三會來」,那麼您的應用程序必須足夠聰明,根據所需的資源,日期和時間將多行插入到「預訂」表中。
而且,看到了這個問題:Database Tables for Reservation site
謝謝:)這是一個好主意。我會跟進。 –