mysql - 良好的登录系统数据库设计的唯一约束 ID?

标签 mysql database-design authentication ms-access-2010 primary-key

当我看到许多登录系统的数据库都有一个用于排列一系列约束ID的字段时,这让我想到了我的登录系统数据库设计的问题,是否有必要。

问题是,假设有一个注册系统,当用户注册帐户时,帐户名已经是唯一的,因为系统会警告您不可用的帐户名 code>,因为它们在数据库中重复。那么我们是否需要为每个成功的注册提供一个受限的 ID 安排呢?虽然允许重复的账户名,但是我们不能只使用用户的身份证号码作为唯一字段吗?

或者假设没有注册系统,管理员分配帐户,我们仍然可以使用他们的身份证号码作为唯一字段。

不会有搜索效率或组织良好的数据结构。我们不通过排列来记录身份,而是通过唯一字段来记录。如果已经有另一个 Unique 字段,也会出现冗余。

到目前为止,我的登录系统需要成员(member)ID密码才能登录,成员(member)ID是系统分配的约束ID排列,这使得我想我应该让用户创建他们的整个帐户名身份证号码并删除MemberID

我是否误解了它们的用法?或者有什么原因吗?良好的数据设计需要如此受限的唯一 ID 吗?

最佳答案

通常,我们提供帐户或用户名是为了方便用户。对他们来说,记住帐户“JohnSmith”比记住一组看似随机的数字要容易得多。一般来说,我们向用户隐藏诸如代理键值之类的详细信息——他们无论如何都不需要知道。让我们面对现实吧,我们的工作是让用户的生活更轻松。如果这让我们的工作变得更加困难(通常如此),那就这样吧。我们来这里是为了他们的利益,而不是相反。

因此,为了方便用户,请务必提供受约束的文本标识符。

关于mysql - 良好的登录系统数据库设计的唯一约束 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32744489/

相关文章:

php - 如何检查 MySQL 中是否设置了位

mysql - 从 csv 导入时 mysql 出错

ms-access - 数据库设计中的循环引用——应该避免吗?

mongodb - 我应该为 mongodb 中的不同用户提供不同的集合吗?

python - MongoEngine 用户认证(django)

MySQL INSERT INTO SELECT 非常慢

mysql - *实际*精确的 MySQL 全文搜索

mysql - 在数据库表中分离 ADMIN 和 USERS 条目的最佳方法

c# - 如何 - 跨 tcp/ip 边界验证调用程序集

java/swing-为什么我的返回方法在赋值后返回NULL?