mysql - 请确认我使用的主键和唯一索引

标签 mysql indexing database-design null key

我想我了解主键和索引。

在我的设置中,我有一个包含多个列的表格。其中两列是用户 ID 和用户名。 理想情况下,我希望两者都是唯一的且不可为空。

据我所知,我的最佳用途是将用户 ID 作为主键,因为这是最重要的字段,不能为 NULL,并且它永远不会随着数据库的增长而改变。

然后我必须将用户名列作为唯一索引,以便它可以在另一行上相同,但不幸的是,可能最终为 NULL。

这就是我要做的,除非有办法使两列都唯一且不可为 NULLABLE?

最佳答案

您可以将 Username 列声明为 NOT NULL 并在其上放置唯一索引。尽管索引本身不会强制使用非空值,但字段定义会强制使用非空值,因此它将实际上是唯一的非空字段。

关于mysql - 请确认我使用的主键和唯一索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8038641/

相关文章:

database - 为什么 Postgres 不为我的查询使用更好的索引?

mysql - 你会认为这是一个自然的主键吗?

indexing - 创建Titan索引类型以进行Elasticsearch

mysql - 数据库设计 : how to track history?

mysql - 在不同客户端的数据库中使用相同的客户 ID 命名

php - mysqli连接并从数据库中选择错误

mysql - 如何使用按钮“下一个”和“上一个”从数据库读取数据

php - 存储此信息的最佳方式是什么?

mysql - 为大型数据库构建搜索引擎

xml - 使用elasticsearch对XML进行索引是一种好的设计吗?