2015-06-24 20 views
0

我有一個使用MongoDB的Rails應用程序。我會公開一個案例,儘管還有很多其他案例可以適用。何處存儲業務數據?

我有一個用戶模型。某些用戶字段:

:first_name 
:last_name 
:email 
:password_hash 
:avatar 
:roles 

有時候我們很有興趣瞭解一些關於用戶如何與我們的應用進行交互的數據。例如,我們想知道每個用戶有多少次訪問。我想到的是從客戶端發佈POST。每次用戶訪問某人的個人資料時,該個人資料所有者(用戶)中的字段都會增加。

因此,我們可以根據該「統計」運行報表。

我的一個隊友認爲這不是一個好習慣,因爲我們最終會在整個應用程序中發出大量請求。人們通常如何做到這一點?通過AJAX發送POST請求並將其存儲在數據庫中是否是一種好的做法?

回答

0

如果某人的個人資料存取需要一個連接,你可以與current_user(訪問者)數據庫中添加一條記錄時,控制器(動作顯示縱斷面圖)的show動作被調用時,你就會知道誰正在訪問每個配置文件。

否則,只需在User模型中添加一個view_count列,並在調用show操作時,增加此列。

0

對於任何問題都有不同的方法,也取決於需求。

例如,何時請求這些報告?你是否需要他們,或者你計劃每天運行一次?在後者中,您可以創建一個cron任務或類似的工具來在低活動時間(夜間?)生成報告。

如果您需要它們,您可以嘗試緩存一些數據以減少服務器負載。

但事情是,如果你需要存儲統計數據,你仍然需要點擊數據庫。使這個命中快速和輕巧(只發送id並生成信息服務器端的其餘部分)。

如果您不希望最終填寫與統計相關的字段的用戶表,則可以使用該信息創建關聯表,該信息與具有該id的用戶相關。但是,你想要統計數據嗎?你需要將它們存儲在某個地方。

相關問題