1
我們有一個Winform應用程序,要求用戶使用他們的用戶名和密碼登錄。該軟件是免費的,但支持不是。支持費用將基於全職等效用戶的數量,因此我們基本上需要跟蹤每月使用軟件的時間。該軟件使用VS 2010書面和後端是MS SQL 2008跟蹤用戶在Winform應用程序上的使用情況
目前,我們有一個表如下:
>CREATE TABLE [UserUsages](
> [GUID] [uniqueidentifier] NOT NULL,
> [Source] [varchar](50) NOT NULL, -- Name of the software/front end
> [WksName] [varchar](50) NOT NULL, -- Name of the workstation
> [WksIP] [varchar](50) NOT NULL, -- IP of the workstation
> [UserGUID] [uniqueidentifier] NOT NULL, -- UID of the User who logged in
> [TimeIn] [datetime] NOT NULL, -- Time the user logged in
> [TimOut] [datetime] NOT NULL, -- Time the user logged out
>CONSTRAINT [pk_Usages_GUID] PRIMARY KEY CLUSTERED
>([GUID] ASC)
>) ON [PRIMARY]
每當用戶登錄,我們創造這個新紀錄表並將時間保存到TimeIn列。當用戶註銷時,我們更新TimeOut列。
這種方法的問題是,如果用戶決定使用Windows任務管理器結束任務或系統崩潰並需要冷啓動,則TimeOut不會更新。
有沒有更好的辦法做到這一點?而且就表格結構而言,我們可以做些什麼來使其效果更好?
你將有近似「退出」的時間記錄更新的超時紀錄一分鐘謝謝大家已經每5分鐘更新一次該字段。我忘了在我的操作中提到這一點。其他從這個解決方案,有沒有更好的方法? – theUnderdog