2011-09-28 52 views
-1

我正在創建一個網站,家庭成員可以在家裏的海邊小屋裏預訂假期。 每個成員每年被分配40個學分。會員必須有足夠的信用點才能預訂假期。 (這個信用系統確保每個成員都有平等的住宿機會) 然而,並非所有星期都需要相同數量的信用積分,而最後一刻的預訂不需要信用積分。我應該如何實施這個信用系統?

我的問題是:我應該如何將信用點存儲在數據庫中?什麼是最有效的?每天/每幾天/每週?我如何有效地檢查使用mysql在給定日期範圍內需要多少信用點?

BTW:我使用Zend框架和我熟悉的代碼等等,我只是需要一些概念性的建議;)

回答

0

如果我正確理解你的話,我想我會存儲類似:

  • 每個用戶的剩餘積分的數量
  • 每天學分的默認數
  • 之前的天數計爲「最後一分鐘」的
  • 期(開始日期,結束日期,每日費用)

然後,我會計算每當用戶需要預訂時從這些信息動態預訂的成本。最後一分鐘預訂規則可以被看作是開始日期現在的特殊偏差時期,結束日期現在是+「天數」並且成本爲零。

我認爲沒有人會預訂小於一天的小屋。如果他們願意的話,我會改變上面「日」的用法,以任何時間單位都是明智的。

只是我的想法。 :-)

+0

謝謝!是的,我想我只會在開始日期,結束日期,並將邏輯放在php代碼中。 – rbnvrw

+0

是的,這可能是一個好主意。對於我認爲將是一個相當小的應用程序而言,沒有想法過度概括。 :-) – henko

1

我不知道我的理解對不對的問題在這裏,但:

  • 您需要在「用戶」表來存儲信用卡的其餘每個用戶的數量。
  • 您需要另外一個表格,包括「開始時間段」,「結束時間段」,「持續時間」,「需要的積分數量」等字段
  • 在持續時間字段中,它可能是一個枚舉值爲「day 「,」星期「,」last_minute「。

然後,邏輯將在您的PHP代碼中,但是隨着這一點,只要用戶想要使用山寨,您就可以獲得正確數量的積分。