2013-03-15 89 views
0

爲了獲得最佳性能,我想知道用戶表(通過電子郵件和密碼登錄)的最佳表結構和索引。 我不想使用用戶名。 我想用用戶電子郵件登錄具有唯一索引(以獲得更好的性能)。使用電子郵件註冊登錄系統的用戶表結構

也許最好的性能將是電子郵件和密碼的唯一索引。

問題是我想將電子郵件索引爲獨特的更快登錄。 但在這種情況下,壞的用戶可以阻止其他用戶註冊知道他的電子郵件。

唯一的想法,我可以想到某種獨特的電子郵件和密碼哈希在一個獨特的列。但我想知道它是如何做到最好的。我的用戶表索引結構的

部分(DB是MySQL的)

user_id - PRIMARY 
email  - UNIQUE 
password 
verified (after verify email) 
+1

如果你想允許來自同一個電子郵件地址但使用不同密碼的多個註冊,您*可以*重新定義複合'(電子郵件,密碼)'上的'UNIQUE'約束。然而,如果你存儲'password'的鹽漬散列(你真的應該這樣做),這將不起作用,所以我不推薦它。你試圖對付什麼威脅?攻擊者是否使用其他人的電子郵件地址註冊?真正的用戶不會收到驗證郵件和/或能夠獲得重置密碼嗎?這是嚴重的威脅嗎? – eggyal 2013-03-15 12:46:16

+0

我的線索是我註冊你的電子郵件地址,現在你無法註冊,因爲你的電子郵件是在DB中。但我tottaly忘了你收到一封驗證郵件。我PUT取消註冊(我沒有註冊)在此電子郵件鏈接和問題解決。謝謝 – petkopalko 2013-03-15 12:53:11

回答

0

簡單的解決方案:

發送驗證電子郵件鏈接取消註冊(我沒有註冊)

相關問題