我想實現類似的東西,但我遇到了一些問題。我想知道我的選擇是什麼解決這個問題,以及在這種情況下使用的常用技術是什麼。 (見這個問題的底部,如果您不熟悉與Netflix)Netflix用什麼類型的邏輯來創建客戶訂單?
當前的方法 創建一個「控制」表,裏面有關客戶的狀態,並交叉引用到一個服務計劃表信息。
controls(member_id, movies_rented_this_month, movies_at_home)
plans(movies_per_month_limit, movies_at_home_limit)
返回物品時,請檢查控制表以查看客戶是否有資格接收其他訂單。
if controls.movies_at_home < plan.movies_at_home_limit
and if controls.movies_this_month < plan.movies_this_month_limit
對於任何人誰沒有以前的訂單(新客戶),或在誰的收盤順序的時間無關,在他們的電影隊列中,我們創建了一個計劃的事件來創建訂單(輪詢)。
問題我們需要考慮每個客戶可以根據他們的計劃訂購多少訂單。上述邏輯在某些情況下會失敗:
plans.movies_this_month_limit = 4, controls.movies_this_month = 3
plans.movies_at_home_limit = 2 , controls.movies_at_home = 0
在上述情況下誰對一個訂單將收到兩封資格客戶。顛倒標準可以解決問題。
了簡化的架構
members(id, plan_id)
movies(id, title)
plans(id, movies_at_home_limit, movies_per_month_limit)
controls(member_id, movies_at_home, movies_this_month)
movie_queue(member_id, movies_id)
Netflix的 在線電影租賃服務,允許會員,以保持電影的心願。客戶根據他們的計劃類型逐漸從他們的願望清單(通過郵件)收到電影。
>暗示我們知道有關封閉系統的任何信息 – 2010-09-20 12:34:58
我已經添加了關於Netflix的簡要說明以及我的模式是什麼。對不起,其中一件事引起了我的警惕。 – Mohamad 2010-09-20 12:42:19