gpt4 book ai didi

mysql - 跨列的值是唯一的

转载 作者:行者123 更新时间:2023-11-29 13:11:11 26 4
gpt4 key购买 nike

我有一个案例,其中有两列,但两列中的值应该是唯一的。所以你可以考虑下表

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中实现它吗?目前我通过应用程序逻辑来管理它,有时很难处理,因为来自不同团队的不同模块的不同人在表中插入/更新数据。

还要补充一点,我的用户表按数百万条记录排列,并且还有辅助移动设备的选项。创建第二个(或第三个)2 倍大小的表并始终连接两个(或三个)表会使我的情况变得更糟。

预先感谢您的所有投入..

最佳答案

如果您标准化您的设计,您可以拥有一个引用您的用户详细信息的电子邮件表:

user_details_email
------------------
user_details_id (FK)
email_address

具有跨user_details_id、email_address的主键。您可以选择添加一个 bool 列以将其标记为主要列。

关于mysql - 跨列的值是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22075631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com