は、私がメンバーシップの3種類のための部屋のために3種類の充電スケジュールを持っていると仮定します:1時間あたり$ 9ライティング設定可能なステップ関数
5から12時間:1時間あたり$ 8
メンバー
、0 - 1時間:時間
あたり$ 81 - 5時間:時間
5につき$ 7から12時間:時間
プレミアム
0につき$ - 6 1時間:$ 4 /時間
1 - 5時間:$ 3 /時間
5 - 12時間:1時間あたり$ 2
これらはフロントエンドで設定可能な料金です。
動的に格納して計算するベストプラクティスは何ですか?
私はアイデアを持っているが、私はより良いものがそこにあると信じて:
SQL表は:membership_rates
membership,min_hr,max_hr,rate
normal,0,1,10
normal,1,5,9
normal,5,12,8
member,0,1,8
member,1,5,7
member,5,12,6
premium,0,1,4
premium,1,5,3
premium,5,12,2
次に擬似コードでは、Pythonで
find out membership type
query the rates for the membership type in an array
while rent_amt is larger than max_hr of the query:
rate = selected_rate from the bracket
find next smaller rate
return the rate * the no. of hours used
例(Django)は:
amt_used = rent.amt_used
membership = member.membership
rates = Rates.objects.filter(membership=membership).order_by(max_rate)
rate = 0
while amt_used > rates.max_hr:
rate = rates.rate
return amt_used * rate
「動的に保存されています」とはどういう意味ですか?これらの価値は頻繁に変わるかもしれない? – vmonteco
はい値を変更できます。 – bryansis2010