我們有一個引用用戶表的密碼錶。記錄永遠不會從密碼錶中刪除,因此如果用戶更改其密碼,則會插入一個新條目,其中包含更新的Created
日期。這是一個有效且高效的SQL查詢還是有更好的方法?
密碼的哈希被醃製的各種事情,最重要的實際記錄的創建日期。
在一個存儲過程中,我正在檢索變量,所以我可以做一個散列來進行比較。我真的只是想爲用戶最近的密碼哈希存儲與記錄的創建日期進行:
DECLARE @ExistingPassword as varchar(200)
DECLARE @LastChanged as DateTime
SELECT Top 1
@ExistingPassword = p.PasswordHash,
@LastChanged = p.Created,
FROM Password as p
WHERE p.UserId = @UserId
ORDER BY p.Created DESC
這是獲得最新的密碼哈希和創建日期的合理有效的方式?有沒有更好的方法來做到這一點?
那完全取決於表的大小
,到位哪些索引以及指數如何分散。 –
@Mitch - 是的,指出一點,這會產生很大的變化。作爲背景,我們正在討論可能有50,000個用戶,他們可以按照自己的喜好定期更改密碼。然而,隨着時間的推移,用戶最終可能會有幾百個密碼。 – Damovisa