谢谢大家的回答。
我边走边学 - 所以我正在学习,但还有很长的路要走。对于工作,我们主要将 MySQL 用于我们的数据库 - Web 开发。我有一个关于唯一索引的问题 - 何时正确使用它们以及如何正确使用它们。
我确定我非常理解它们的目的 - 将列声明为“非重复”列,也就是该特定列的表中不能存在两次值。如果尝试违反该索引规则的插入/更新,则会失败。
我正在为站点创建用户系统,并且正在为该系统设计数据库表。一张表是“用户”表 - 保存用户
users
-----------------
int(4) usersID primary key
varchar(255) lastName
varchar(255) firstName
varchar(255) email unique
varchar(255) password
我在“电子邮件”上创建了一个唯一索引,因为每个用户的每个电子邮件都必须不同 - 它将用作他们的登录信息。但是,我还想为“lastName”、“firstName”和“email”创建一个唯一索引,因为任何两个用户都不应该拥有这三者的相同组合。我应该为该规则创建另一个唯一索引还是只为这三个创建一个索引?在索引中重复列是否不好?
最佳答案
虽然在某些情况下在多个索引中包含一列并不坏,但对于您尝试执行的操作来说这是多余的。
由于您不允许重复的电子邮件地址,因此没有人能够提交重复的第一个/最后一个/电子邮件,因为它已经无法通过电子邮件的 UNIQUE 检查。
关于MySQL唯一索引设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1306274/