我正在为我的网站创建一个用户登录系统,我需要一些帮助来创建数据库。所以我到目前为止我有这3张桌子。您认为这是一个正确的数据库架构吗?如果没有,那你会建议什么?
---Users---
user_id
user_name
user_email
user_firstname
user_lastname
user_state
user_country
user_occupation
user_dob
user_accountcreationdate
user_sex
user_role
user_password
---Roles---
role_id
role_name
role_description
---Logins----
user_id
last_login
browser_type
ip_address
编辑**** 这会是正确的吗?我在第4个表中添加了用户角色。如果我添加第4个表,这是否意味着我可以从Users表中删除user_role?
---Users---
user_id
user_name
user_email
user_firstname
user_lastname
user_state
user_country
user_occupation
user_dob
user_accountcreationdate
user_sex
user_role
user_password
---Roles---
role_id
role_name
role_description
---Logins----
user_id
last_login
browser_type
ip_address
---User Roles---
user_id
role_id
答案 0 :(得分:0)
您的架构显示每个用户只有一个角色。你可能很快就会发现你想要比这更精细地做到这一点。我建议使用user_role表将user_id映射到role_id(以及date_granted,date_revoked,granted_by等)。
如果您想要真正规范化, users.occupation 将是 Occupations 表的外键。 州和国家/地区。
要非常小心存储密码。
如果您正在记录成功的登录,为什么不记录不成功的登录。这可能会向您显示需要帮助或其帐户被黑客入侵的人。</ p> 祝你好运。
答案 1 :(得分:0)
Ya它看起来不错..但为什么不活动标志激活/停用用户。并且只允许他们在通过唯一链接或OTP验证其电子邮件身份后登录。