用户登录系统数据库架构...请批评?

时间:2012-10-20 17:39:23

标签: mysql schema database-schema

我正在为我的网站创建一个用户登录系统,我需要一些帮助来创建数据库。所以我到目前为止我有这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

2 个答案:

答案 0 :(得分:0)

您的架构显示每个用户只有一个角色。你可能很快就会发现你想要比这更精细地做到这一点。我建议使用user_role表将user_id映射到role_id(以及date_granted,date_revoked,granted_by等)。

如果您想要真正规范化, users.occupation 将是 Occupations 表的外键。 国家/地区

要非常小心存储密码。

如果您正在记录成功的登录,为什么不记录不成功的登录。这可能会向您显示需要帮助或其帐户被黑客入侵的人。<​​/ p> 祝你好运。

答案 1 :(得分:0)

Ya它看起来不错..但为什么不活动标志激活/停用用户。并且只允许他们在通过唯一链接或OTP验证其电子邮件身份后登录。