2013-03-19 73 views
0

我的目標是創建一個存儲用戶及其密碼信息的表。另外,我想跟蹤失敗登錄的次數。然而,這是有關表的簡要說明:在SQL中創建登錄表

第一:用戶 UserNo

的表:用戶ID

名稱:用戶名

電子郵件

二:登錄表

UserNo:是一樣的最後一個

密碼

三:日期和登錄

計數的時間:反跟蹤

UserNo

日期時間的表每當用戶登錄不正確時都會增加。

從最後三張表中,我不認爲我所做的是一種專業的方式。有更好的想法嗎?尤其是跟蹤表。

感謝

+0

我真的會考慮把它全部放在一張桌子上。成功登錄後重置失敗的計數器,只記錄大多數先前的日期和時間,除非您需要跟蹤所有的日期和時間。 – 2013-03-19 13:44:17

+0

你爲什麼認爲這不是專業?您可以將密碼放在表1中,並取消表2,每次用戶登錄時是否在表3中記錄了一條記錄?如果沒有,這也可以合併到第一個表中,即使用LastSuccessfulLoginDate – RobJohnson 2013-03-19 13:44:25

回答

2

幾個要點:

  1. 沒有理由爲你的第二個表,除非你要保持一個密碼歷史記錄(在這種情況下,你需要一個額外的字段來跟蹤日期密碼創建)

  2. 在第三個表中,不要使用計數器的錯誤登錄數;相反,請爲每次登錄嘗試(成功或其他)寫一條記錄,並在需要時使用查詢來檢索計數。

0

你可以把你所有的領域在一個表中

UserID, UserName, UserEmail, Password, Login_Timestamp, Counter 

那麼您可以將所有的值保存在一個表中

3

你爲什麼讓他們分開?爲什麼不只是有一個用戶表的ID,用戶名,密碼哈希,上次登錄日期和失敗的嘗試計數器?

否則,您可以將登錄嘗試分離出它自己的表並記錄狀態,例如SUCCESS或FAIL,以便您可以按程序計算自上次成功嘗試以來失敗的嘗試次數,並且還提供對登錄的完整審覈,失敗或失敗。

3

您可能希望將前兩個表合併在一起,因爲每個用戶只有一個密碼,所以將一個用戶的所有數據放在一個表中的一行上是有意義的。

第三個表記錄了每個登錄的時間戳,並且如果添加了一個額外的列,還可以記錄每個失敗登錄的時間戳,然後quesy會給你一個每個用戶失敗登錄次數的計數。

或者,如果您要計算上次登錄後失敗的登錄次數,則可以將計數器再次置於第一個表中。