【发布时间】:2014-02-27 17:17:50
【问题描述】:
我有一个案例,其中我有两列,但值在两列中应该是唯一的。所以你可以考虑下表
CREATE TABLE user_details(
id int(11) AUTO_INCREMENT PRIMARY KEY,
email varchar(200),
secondary_email varchar(200),
unique key(email),
unique key(secondary_email)
);
我想要的功能是,电子邮件不能在 email 和 secondary_email 列之间重复。因此,给定的电子邮件只能与一个用户链接。我们可以在没有触发器的情况下在 MySQL 中实现它吗?目前我通过应用程序逻辑管理它,有时很难处理,因为来自不同团队的不同模块的不同人员在表中插入/更新数据。
还要补充一点,我的用户表有数百万条记录,并且还可以选择辅助移动设备。创建一个 2x 大小的第二个(或第三个)表并始终连接两个(或三个)表会恶化我的情况。
提前感谢您的所有意见..
【问题讨论】:
-
为电子邮件创建一个表格,然后在 (id,email_id) 上创建一个唯一键
标签: mysql indexing unique-constraint