gpt4 book ai didi

mysql - 如何使值的组合在 mySQL 表中唯一,无论它们的顺序如何?

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

我正在创建一个涉及好友系统的应用程序,例如 Facebook 中的好友系统。我在 SQL 数据库中构建此结构的方式是使用一个 friend 表,其中包含 ID、accountID1、accountID2 列,以便记录友谊中涉及的两个帐户中的每一个。问题是友谊可以用两种不同的方式来表示,例如:

ID | accountID1 | accountID2
1 | 1 | 2
2 | 2 | 1

如果我使组合唯一,它并不能防止这种情况发生。如何在 MySQL 中创建约束以防止友谊以两种不同的方式出现以确保数据完整性?或者是否有不同的方式来存储这些信息以从一开始就防止出现此类问题?

最佳答案

我使用的最终解决方案是首先删除好友表的 ID,并从两个帐户 ID 的 PrimaryKey(accountID0, accountID1) 中创建一个复合主键。这确保了它们的组合是唯一的。然后我创建了一个“插入之前触发器”来切换值,以便较小的 accountID 始终位于 accountID0 中。这个方法非常有效,到目前为止没有出现任何问题。

关于mysql - 如何使值的组合在 mySQL 表中唯一,无论它们的顺序如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48050929/

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