注冊 數據庫設計
1、先前
id
username
password
......
用戶名加上密碼,解決簡單需求,留個id作為其他表的外鍵。當然,那時候密碼還可能是明文存儲,好點的知道md5。
2、后來
id //主鍵
username //賬號
password //密碼
name //昵稱
phone //電話
email //郵箱
realname //真實姓名
sex //性別
age //年齡
QQ
address //地址
head_img //頭像地址
rights //權限
status //賬號狀態
register_time //注冊時間
register_ip //注冊地址
login_time //登陸時間
login_ip //登陸地址
......
隨着業務需求的拓展,要加個用戶狀態 status 判斷用戶是否被封禁,注冊時間和注冊IP地址、上次登錄時間和IP地址備查(並衍生出登錄記錄表,用來判斷是否異地登錄等),用戶角色/權限 rights (又衍生出用戶角色權限關系,還是另文討論),業務也需要個人的個人信息如真實姓名、地址等也一股腦往上添加,現在形成了一個很完整的用戶關系表。
3、Web2.0時代
Web2.0時代,微博開放了第三方網站登錄。
后來又是各種第三方網站登錄。
用戶基礎信息表 users
id
nickname
avatar
......
用戶授權信息表 user_auths
id
user_id
identity_type 登錄類型(手機號 郵箱 用戶名)或第三方應用名稱(微信 微博等)
identifier 標識(手機號 郵箱 用戶名或第三方應用的唯一標識)
credential 密碼憑證(站內的保存密碼,站外的不保存或保存token)
......