gpt4 book ai didi

mysql - 数据库设计: what fields are must for a user table in database?

转载 作者:可可西里 更新时间:2023-11-01 07:12:08 25 4
gpt4 key购买 nike

我正在尝试为 MySQL 设计一个用户表。

现在,我的用户表看起来像这样

users (
BIGINT id,
VARCHAR(?) username,
VARCHAR(?) password,
VARCHAR(254) email,
DATETIME last_login,
DATETIME data_created
)

我还应该包括哪些其他字段,为什么需要它们?

我应该从上面排除哪些字段,为什么?

我应该为用户名和密码分配多少个字符,为什么?

我应该为 id 使用 BIGINT 吗?

预先感谢您的帮助。

已添加我打算将此表用于社交网站,因此“用户”是指世界各地的人。

最佳答案

一些评论:

  1. BIGINT 没问题。我假设您将其用作代理键。在这种情况下,将其声明为

    BIGINT id主键auto_increment,

    Mysql 会在您执行插入时自动为您的 id 分配一个唯一的 int 值(不要为此字段指定任何值)。永远不要尝试通过选择最大 ID 并将其加 1 来实现此行为(我已经见过很多次了)。

  2. 用户名和密码的长度:这没什么大不了的,选择一个长度即可。对于这些东西,我倾向于将 255 长度的 varchar 标准化,但这并不是基于任何经验。

  3. 称你的表为“user”,而不是“users”。从概念上讲,表实现实体的方式与类实现实体的方式相同。您可能会创建一个名为“user”的类或数据结构,表名应与此相对应。

  4. 我创建的每个表都有两个时间戳,“created”和“last_updated”。你已经完成了一半:)

  5. 我认为我不会将 last_login 存储在用户表中,这很可能是您希望在单独的表中登录的内容。将所有登录事件(登录、注销、失败尝试、帐户锁定等)存储在日志表中是个好主意。这将使您更好地了解系统一直在做什么。

关于mysql - 数据库设计: what fields are must for a user table in database?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5621469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com