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这不是重点。人们仍然在所有在线服务中使用相同的密码。因此,如果该数据库遭到破坏,并且密码映射到用户,那么攻击者就可以开始为其社交媒体帐户、在线银行门户、网络邮件等尝试相同的密码。建议对密码进行哈希处理是有原因的。谢谢大家的回答,现在我明白得多了。