2

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

2 回答 2

1

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

如果你想真正规范化,users.occupation将是职业表的外键。 statecountry也是。

要非常小心如何存储密码。

如果您正在记录成功的登录,为什么不也记录不成功的登录。这可能会让您知道有人需要帮助或帐户被黑客入侵。

祝你好运。

于 2012-10-20T19:10:43.760 回答
0

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

于 2017-04-25T06:01:31.873 回答