2017-05-26 32 views
1

我目前正在爲學生建立一個Ruby on Rails應用程序,以便與教員預定講習班。我正在尋求關於模型設置的一些建議。Rails應用程序 - 預訂時間間隔架構設置

我已經看過this & this堆棧溢出線程,但它們不回答我的問題。


功能所需:

  • 教師需要能夠設置可每週重複的時隙用於預訂
  • 教師需要能夠開拓除了額外的一次性時隙到每週重複插槽
  • 教師需要能夠一次性移除可用時隙,例如當教練去度假
  • 類不限於一個學生,作爲老師希望需要考慮
  • 所有課程一小時多頭,所以只啓動一次班可以有許多學生

    我目前的建議:

    我正在考慮將其設置三種模式和三個表。這三種型號都連接到同一個workshop控制器。

    示例數據使用以下場景:湯姆在每週一上課有&週二上午9點,但僅在下週,他將他的Tue班轉換爲在週三舉行。

    這個想法是我有一個列出所有教師課程的模型。我爲每個老師的課程都有另一種模式。然後我有例外第三個模型充當的「更改」,每週重複的班次列表:鏈接到workshop

    workshop型號:

    ID | Workshop Name | Price 
    1 | Tom's Class | 100 
    

    workshop_times_recurring模型掛workshop_times_recurring表:

    ID | Workshop ID | Times 
    1 | 1   | {Monday 0900, Tuesday 0900} 
    

    workshop_times_other模型掛workshop_times_other表:

    ID | Workshop ID | Type | Time 
    1 | 1   | Active | {2017May31 09am} 
    2 | 1   | Inactive| {2017May30 09am} 
    

    我的問題是:

    1. 這是最優雅的方式來建立我的應用程序的模型,我不能完全偏離軌道?如果不是,什麼是更好的解決方案?
    2. 我希望我能夠解析像'Monday 0900, Tuesday 0900''2017May31 09am'這樣的字符串,以便信息可以在JavaScript驅動的日期時間選擇日曆上正確顯示。我現在的設置是否允許我在前端實現這個功能?
  • 回答

    1

    要主要回答你的第二個問題,我建議使用已建立的格式重複計劃,如OpenStreetMap Opening Hours格式。它也有一個JavaScript library

    但是,既然它也可以處理例外的例外情況,它可能會使你的模型簡化一點。

    +0

    太好了,我來看看,謝謝 – michaelqz