2014-03-04 34 views
1

這通常不是我想要提出的問題的類型,但是由於我發現它具有挑戰性,並且沒有找到有關如何執行此操作的好資源,所以在此處進行。PHP日曆/日程安排數據庫結構

我需要創建一個日曆,該日曆將用於顯示預約約會,並允許用戶請求一天中有空閒時間的約會。實際上,我發現一個網站實現這個日曆/日程安排系統,非常接近我需要的。 基本上,前側是與此類似:

enter image description here

什麼我有麻煩的是,因爲我不是一個數據庫主,我想不出如何去了解的最佳方式這個。我需要什麼類型的表/字段才能實現這種靈活性。如果一天不分成幾小時和幾分鐘,我不會有任何麻煩,但這是一項功能要求。我是否需要一張桌子來代表一天中有小時和分鐘的列?

任何數據庫大師,可以提供進一步的洞察,如何做到最好?

注意:一天中的每個小時都被分成4個季度,因爲約會可能需要15分鐘到45分鐘,這取決於用戶請求的預約類型。

我不需要任何數據庫設計或任何東西,只是一些簡要的解釋,我可以作爲一個起點。我接受所有建設性的答案,並將不勝感激

回答

1

你只需要將事件詳細信息存儲在表中。 在MySQL我wolud創建一個表是這樣的:

CREATE TABLE `event` (
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, 
    `creator_user_id` INT UNSIGNED NOT NULL, 
    `start_at` DATETIME NOT NULL, 
    `finish_at` DATETIME NOT NULL, 
    `location_id` INT UNSIGNED NOT NULL, 
    `name` VARCHAR(50) NOT NULL, 
    `description` TEXT NULL, 
    PRIMARY KEY (`id`), 
    INDEX `start_at` (`start_at`), 
    INDEX `finish_at` (`finish_at`), 
    INDEX `location_id` (`location_id`) 
) 
COLLATE='latin1_swedish_ci' 
ENGINE=InnoDB; 

當顯示你只需要選擇只記錄overlaping顯示週期的日曆。

+0

感謝你們,我想我已經掌握了足夠的想法來解決這個問題。再次感謝 – LogixMaster