mysql - 是否建议在数据库的所有表中使用文本字段作为用户 ID?

标签 mysql database database-design indexing primary-key

我看了一下ownCloud的数据库方案,所有用户都有一张表。
userID(他们的 PK?)是用户名,他们没有数字 id 或 userID 列。

这是以某种方式推荐的还是他们为什么这样做?
因为当我想更改用户的用户名时,我必须更改数据库所有表中所有受影响的行,而不仅仅是用户表中的一行。

在我看来这是错误的并且不利于性能。 https://github.com/owncloud/core/issues/9136 https://github.com/owncloud/core/blob/master/db_structure.xml#L1026它们的 uid 是长度为 64text 但应该是 integer 字段,例如 auto_increment

这是专业/良好的做法吗?

还引用了这个:Is it bad to use user name as primary key in database design?

最佳答案

首先...数字是最好的存储内存 第二...名字可能会重复!(重复)! 所以..数字是最好的

关于mysql - 是否建议在数据库的所有表中使用文本字段作为用户 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24353997/

相关文章:

database-design - 事务处理 : How are simultaneous transaction managed?

php mysql 日期过滤产生了一些问题

php - 如何编写正确的mysql_query?

database - 保护和加密 Multi-Tenancy 云应用程序共享数据库中的数据

sql - 如何在多个列中查找重复计数?

mysql - 我将如何限制表格行数?

mysql - 具有可为空外键的数据库表

mysql - 在 MySQL 中,如果一个字段没有数据,它应该为空或 null,还是其他?

将查询结果打印到文本文件时 MySQL 访问被拒绝

php - 尝试使用 PDO 将表单数据插入数据库时​​不断出现错误