我即將建立一個網上商店,需要提出一個跟蹤用戶信息的解決方案,並基於此建議他們可能喜歡的用戶產品,然後構建一個個人用戶配置文件(他們喜歡什麼)。被跟蹤/用於算法跟蹤用戶活動,以建立個人用戶配置文件和建議
信息,我認爲應該包括:
- 過去的訂單
- 願望清單/書籤/收藏夾...
- 輸入搜索條件
- 產品瀏覽(在這裏也跟蹤並考慮「落客」 - 引用,意思是用戶關閉網站/立即返回或查看更多圖片/向下滾動(視口)等)
產品被分配到的類別,以及不同的屬性,例如顏色,標籤等表product
有color
,category
關係等
產品
id_product
價格
timestamp_added顏色
id_color
...product_color
id_product_color
id_product
id_color
的問題是:
1)你將如何構建一個數據庫來跟蹤例如產品被查看?它應該是就這樣?:
product_viewed
id_product_viewed
id_product
id_user
時間戳
2)如果我想例如計算用戶最喜歡的3種顏色是基於用戶購買的產品的顏色,放在他們的願望清單中,添加書籤,查看:可以從性能角度處理這些顏色,以計算每次查詢數據庫時應該推薦哪些產品時間?或者您是否不時更新用戶配置文件,僅根據所跟蹤的數據僅存儲已計算的最喜歡顏色,並使用存儲的計算數據查找與此信息相匹配的產品?
像Facebook,亞馬遜或pinterest這樣的大型網站如何做到這一點?根據您點擊的項目,您可以根據自己喜歡的項目獲得建議。他們如何處理這個問題?
好的,謝謝你!我只從索引中知道B樹,我會看看這個,謝謝!你對我的問題有何看法?你會如何計算最喜歡的顏色? – Chris
雖然我剛剛搜索了一棵B樹,但是有可能給出一個解釋,爲什麼像Facebook這樣的人會使用B樹而不是另一種解決方案?即爲什麼B-Tree是最好的? –
有了像Facebook這樣的海量數據庫,有時間提供信息很重要。經典的樹不會是最好的解決方案。使用B-Tree,您可以將所有葉子放在一個層面,因此只需一步即可訪問信息:「數據庫 - >信息」。而不是經典的樹:'數據庫 - >配置文件 - >名稱 - >信息'。但據我所知,這超越了MySQL。一棵B樹有點難以設置。 – IMX