鍍金池/ 問答/PHP  Python  數(shù)據(jù)庫(kù)  網(wǎng)絡(luò)安全/ 統(tǒng)計(jì)會(huì)員半年復(fù)購(gòu)率的問題(7天、15天、30天)

統(tǒng)計(jì)會(huì)員半年復(fù)購(gòu)率的問題(7天、15天、30天)

order 訂單表 字段 id order_no(訂單編號(hào)) business_id(商戶ID) user_id(會(huì)員ID)money(消費(fèi)金額)
user 會(huì)員表 id name 會(huì)員名稱
business 商戶表 id name 商戶名稱

基數(shù):200個(gè)商戶 一個(gè)商戶可能有200個(gè)顧客
前提:會(huì)員購(gòu)買過一次,第二次購(gòu)買就算復(fù)購(gòu)
問題:有什么好的設(shè)計(jì)方案和想法

目前我所想到的方法:
新建一張表,存商戶和會(huì)員的關(guān)系

re_business_user

business_id user_id number money date created_at
商戶ID 用戶ID 購(gòu)買次數(shù) 購(gòu)買金額 時(shí)間(2018-05-11) 創(chuàng)建時(shí)間

每天用戶在某個(gè)商戶購(gòu)買商品時(shí)查詢一下關(guān)系表(re_business_user)數(shù)據(jù)是否存在(where 條件中加上date等于當(dāng)前的時(shí)間2018-05-11),不存在新增一天記錄,存在則更新購(gòu)買次數(shù)+1和購(gòu)買金額增加
這樣設(shè)計(jì)我就可以很快的計(jì)算出7天復(fù)購(gòu)率,15天復(fù)購(gòu)率,30天復(fù)購(gòu)率

這樣設(shè)計(jì)會(huì)造成整張表數(shù)據(jù)量過大,一個(gè)月大概會(huì)有120W數(shù)據(jù)(20020030)

各位大佬有什么好的想法可以解決這個(gè)問題嗎?謝謝

回答
編輯回答
風(fēng)清揚(yáng)

咳咳,先個(gè)人覺得 120w 并不大(習(xí)慣吐槽)。然后你既然是分段的,那不若直接建立索引就好了。當(dāng)然,如果說優(yōu)化,確實(shí)是建立新的一個(gè)表記錄會(huì)比較好些。
其實(shí)我個(gè)人理解,數(shù)據(jù)庫(kù)的使用就兩種情況,一種用空間換時(shí)間,另一種自然是用時(shí)間換空間。是我的話,個(gè)人會(huì)選擇只是優(yōu)化表的索引,然后再進(jìn)行查詢就好,考慮到你做的復(fù)購(gòu)率的調(diào)查頻率不會(huì)很高,用時(shí)間作為代價(jià)運(yùn)作也是可以的。

2017年5月16日 04:10