2010-12-07 24 views
1

守護程序每分鐘返回當前檢入設施的用戶列表。進入或離開人必須使用智能卡。物理訪問日誌記錄 - SQL數據庫設計

最終的解決方案應該允許查看哪些用戶已經過檢查多久和何時。

我的問題是: a)將守護進程的原始輸出記錄到sql數據庫的一個表中,並根據原始數據執行所有邏輯操作(b)編程一些邏輯到守護進程中,以便sql條目僅在某些更改時生成?

在第二種情況下(我現在趨向於)如何構建sql表?

a)每個唯一的用戶(應該可能添加用戶,以防他們出現的情況下)的一張表,列出了 Check in Time ||檢出時間||時長

b)只有一張表 用戶||入住時間||檢出時間||時長

c)用戶表和鏈接時間記錄表 用戶||布爾(checkedin)

用戶名||入住時間||檢出時間||持續時間

有沒有人有經驗,如何設計這樣的情景,以避免將來的警告

+0

除非是CDC,否則緊急逃生要求將不允許在沒有卡片鑰匙的情況下退出建築物。 – 2010-12-07 18:07:03

+0

@OMG小馬:你的意思是*將*允許? – 2010-12-07 19:30:16

回答

1

根據現有的信息,選項B)得到我的投票。

如果您的RDBMS允許,請考慮將Duration設置爲計算列。對於Microsoft SQL Server,看起來像這樣:

create table SecurityLogging (
    UserId int, 
    CheckInTime datetime, 
    CheckOutTime datetime, 
    Duration as datediff(minute, CheckInTime, CheckOutTime) 
)