Mysql 如何避免数据库中的重复?

Mysql 如何避免数据库中的重复?,mysql,sql,database,Mysql,Sql,Database,我使用的是一个包含两个表的关系数据库: PASSWORD: id (primary key) idEquipment (Foreign key) password (varchar) EQUIPMENT : id (primary key and REFERENCES) type (varchar) model (varchar) 问题是,由于许多设备具有相同的密码值,如何避免在表密码中重复密码 谢谢您的回答。将是您的解决方案 PASSWORD: id (prim

我使用的是一个包含两个表的关系数据库:

PASSWORD:
  id (primary key)
  idEquipment (Foreign key)
  password (varchar)

EQUIPMENT :
  id (primary key and REFERENCES)
  type (varchar)
  model (varchar)
问题是,由于许多设备具有相同的密码值,如何避免在表密码中重复密码

谢谢您的回答。

将是您的解决方案

PASSWORD:
  id (primary key)
  idEquipment (Foreign key)
  password (varchar) UNIQUE

EQUIPMENT :
  id (primary key and REFERENCES)
  type (varchar)
  model (varchar)

唯一的但为什么不允许重复-这真的是完整性安全吗?请不要将密码存储在纯文本中。另外,两个密码相同又有什么关系?我不知道您的使用案例,但两个用户在一个系统中拥有相同的密码是很好的,因为通常会有一些其他信息来识别他们,即用户名或电子邮件地址。这个使用案例看起来是存储他们管理的设备的密码,即密码管理器。因此,只要他们能够安全地访问数据库,存储明文并不是世界末日——我同意,使用某种加密方案会更好,但不是必不可少的。你关于共享两个密码的观点也站得住脚。@JoshWeatherly这不是重点。人们仍然在所有在线服务中使用相同的密码。因此,如果该数据库遭到破坏,并且密码映射到用户,那么攻击者就可以开始为其社交媒体帐户、在线银行门户、网络邮件等尝试相同的密码。建议对密码进行哈希处理是有原因的。谢谢大家的回答,现在我明白得多了。