我希望我的用戶在能夠登錄之前激活他們的帳戶。它們含激活鏈接,像這樣的事情在註冊後收到一封電子郵件:檢查用戶是否激活了他/她的帳戶的最有效方法?
http://www.blabla.com/[email protected]&token=Aisd23uNMAu53932asdDasd82AS
當然,每當有人登錄時,我不得不請檢查是否或不是用戶已經激活了他/她的賬戶。我能想到的2種方式來解決這個問題,無論是在我的「用戶」表,其設置爲空擁有一個額外的列,每當用戶啓動像這樣:
-----------------------------------------------
| id | username | password | activation_token |
-----------------------------------------------
| 1 | user1 | blabla | |
-----------------------------------------------
| 2 | user1 | blabla | asd232DA34qADJs2 |
-----------------------------------------------
然後我提取activation_token與沿用戶信息只要在用戶登錄或我可以只包含激活令牌一個單獨的表,然後在「用戶」表中加入每次用戶登錄:
--------------------------------------
| id | account_id | activation_token |
--------------------------------------
| 1 | 37 | dsad2428491dka98 |
--------------------------------------
| 2 | 2 | asd232DA34qADJs2 |
--------------------------------------
那麼,哪一個會最高效?謝謝你的時間。
編輯:感謝所有偉大的響應
我會說,只要選擇一個就可以了。規範化的版本會更容易實現。 – strager 2010-08-03 15:22:29
規範化的表格將節省數據庫中的一些空間,但成本是更復雜的SQL查詢。兩種解決方案都可以工作,所以只需選擇一個。 – 2010-08-03 15:24:58
正如其他人所說,因爲這種激活只會發生在大多數情況下,任何帳戶一次速度是微不足道的。 – Chris 2010-08-03 15:27:13