2013-02-07 55 views
0

我非常難以設計我需要設計的測試計劃應用程序的數據庫。我將有一個測試中心。這個測試中心將有X個座位。人們可以安排30分鐘的測試。數據庫設計:測試計劃 - 我的計劃有任何錯誤?

起初我打算用每個可用點的記錄填充我的數據庫,然後將它們標記爲「保留」,但似乎是多餘的,並且這是錯誤的方法。

我的計劃是有一個表格(我們可能在將來有多個測試中心),表示測試中心A有X個席位。

然後,當一個人試圖調度測試(或當我顯示avaialble席)我可以查詢是這樣的,每次30分鐘時間塊:

SELECT * FROM reservations WHERE startTime == >= x AND endTime <= Y或類似的東西。然而,這要求我每次想知道有多少個座位打開時都需要進行復雜的查詢。我基本上必須計算每個時間塊的預留數量,認爲我會將這些開始/結束時間保存爲一個範圍,而不是每個30分鐘塊的單個記錄。

我的其他計劃是這樣的。如果一個人保留9-10的時間表。創建兩條記錄,一條在9點,另一條在930點,但帶有foriegn鍵以實際預訂記錄。因此,爲了找到空位,我可以查詢我保存單個塊的表格。

有沒有人有經驗做一個類似的應用程序,或諮詢,到哪裏結構的數據實例?w^

我知道這個問題是一種模糊的,但我不知道在哪裏最好張貼討論。我認爲必須有一種正確的方法來以簡單的方式保持規範化的數據。 有沒有更好的地方來問這個問題?

回答

0

你可能會忘記任意30分鐘的區塊,並開始和結束時間。

+0

我喜歡每個預留記錄的開始/結束時間,但是這不會導致一些非常混亂的SQL,以查明給定的30分鐘塊有多少預留? – Leeish

+0

@Randy。 。 。這適合作爲評論,而不是回答。 –

+0

@戈登林諾夫 - 我辯論過這個 - 但由於這個問題有點含糊,這是基於給出的選擇的答案 - 我把它移到了這裏......如果問題仍未解決,我不會感到不安。 。 – Randy