第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據(jù)一張登錄登出日志表計算每個用戶在線時長,求個思路

根據(jù)一張登錄登出日志表計算每個用戶在線時長,求個思路

慕勒3428872 2019-02-19 17:46:32
有一張日志表,記錄著每個用戶的操作日志信息,例如登錄或注銷,每個操作都有對應(yīng)的createtime,以及當(dāng)前的userName 需求如下: 統(tǒng)計每個用戶在一天內(nèi)在線時長(登錄到注銷這段時間,可能一天登錄注銷多次) 如果用戶電腦直接關(guān)機,或者非正常關(guān)閉系統(tǒng),這時日志表不會產(chǎn)生注銷日志,所以將用戶最后一次的操作日志(可能是增刪改查)作為注銷時間,進(jìn)行在線時長的計算 疑問: 我覺得在日志記錄的時候需要記錄每次會話的sessionId,否則無法進(jìn)行上面計算?
查看完整描述

5 回答

?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊

不需要記錄sessionid,你想用sessionid來記錄非正常退出最后一次操作時間?
針對同一個用戶登錄的上一條數(shù)據(jù)一定是退出操作
1.正常退出,下邊一條一定是登錄
2.普通操作(增刪改查)后非正常關(guān)閉,下一次也一定是登錄操作

所以一次登錄時間長度為本次登錄時間--下次登錄前一條記錄的時間

但是如果用戶非正常關(guān)閉后沒在登錄就需要單獨處理,比如sessionid20分鐘沒操作就過期,就查看最后一條記錄距離當(dāng)前是否超過20分鐘,超過就認(rèn)為已經(jīng)非正常退出。

查看完整回答
反對 回復(fù) 2019-03-01
?
人到中年有點甜

TA貢獻(xiàn)1895條經(jīng)驗 獲得超7個贊

反正得有用戶標(biāo)示,去判斷是哪個用戶的行為日志,

寫日志的時候再寫上每次登陸登出的時間差到日志,最后相加?

查看完整回答
反對 回復(fù) 2019-03-01
?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗 獲得超4個贊

表可以這樣設(shè)計

用戶id   登錄時間  退出時間

登錄的時候,session中記錄登錄時間,同時把退出時間設(shè)置為:登錄時間+超時時間。

用戶活動的時候,根據(jù)session中記錄的登錄時間,去更新那條記錄的退出時間為:當(dāng)前時間+超時時間。

退出的時候,根據(jù)session中記錄的登錄時間,去更新那條記錄的退出時間為:當(dāng)前時間。

查看完整回答
反對 回復(fù) 2019-03-01
?
滄海一幻覺

TA貢獻(xiàn)1824條經(jīng)驗 獲得超5個贊

原始表(假設(shè)):

record_id    uid    name      opr_type    c_time
1            10     cxl       land        2016-12-26 08:00:00
2            10     cxl       out         2016-12-26 23:00:00

最終生成的表:

用戶名    日期(asc)    當(dāng)天第一次登陸時間     當(dāng)天最后一次登出時間     登陸時長(結(jié)果非準(zhǔn)確值)
cxl      2016-12-26    2016-12-26 08:00:00  2016-12-26 15:00:00   3小時10分
cxl      2016-12-27    2016-12-26 08:30:00  2016-12-26 23:00:00   6小時10分

具體流程:

1. 日期分組
2. 當(dāng)天第一次登陸時間
     2.1 第一種情況:若當(dāng)天第一條記錄操作類型是 登出,那么 當(dāng)天第一次登陸時間 = 00:00:01
     2.2 第二種情況:若當(dāng)天第一條記錄操作類型是 登陸,那么 當(dāng)天第一次登陸時間 = c_time
    
3. 當(dāng)天最后一次登出時間
    3.1 第一種情況:若當(dāng)天最后一條記錄操作類型是 登陸,那么 當(dāng)天最后一次登出時間 = 23:59:59
    3.2 第二種情況:若當(dāng)天最后一條記錄操作類型是 登出,那么 當(dāng)天最后一次登出時間 = c_time
4. 登陸時長 
    4.1 當(dāng)天最后一次登出時間 - 當(dāng)天第一次登陸時間

提供下思路哈,具體實現(xiàn)起來個人覺得很不容易(邏輯處理需用到php,分頁的時候也較麻煩,得按照日期進(jìn)行分頁顯示,而不能像 limit 1 , 10 這樣按取出的記錄數(shù)進(jìn)行分頁 ,單sql無法得出最終表結(jié)構(gòu)),所以,就只能到這兒了....

查看完整回答
反對 回復(fù) 2019-03-01
?
慕運維8079593

TA貢獻(xiàn)1876條經(jīng)驗 獲得超5個贊

借問題請教一下大家哈? 登陸可以記錄,登出怎么記錄呢? 用戶不一定真的就點登出按鈕啊。如果是web的話,用戶可以直接關(guān)閉瀏覽器就不關(guān)了,怎么知道什么時候登出的呢? session嗎?

查看完整回答
反對 回復(fù) 2019-03-01
  • 5 回答
  • 0 關(guān)注
  • 1282 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號