我的数据库集中有两个字段,其唯一键的约束。我需要让这两个字段唯一,因为我正在使用它来确定是否要插入副本而只是更新字段。 这是插入/更新它们的查询:
INSERT INTO quiz(player1, player2, array, email1, email2)
VALUES (:user1, :user2, :quests, :email1, :email2)
ON DUPLICATE KEY UPDATE player1=:user1, player2=:user2, array=:quests, email1=:email1, email2=:email2"
唯一字段为player1
和player2
。
这样可以正常工作,但它会计算值插入player1
和player2
字段的顺序。因此我希望将值插入player1,player2 - >例如user1
,user2
与user2
,user1
相同。是否可以在数据库中进行设置 - 或者我是否需要在PHP中使用其他功能进行更新?
答案 0 :(得分:0)
我多次遇到这种情况,简短的回答是我认为你必须添加一些PHP代码来检查user2,user1记录在插入user1,user2记录之前是否已经存在。
或者,您可以考虑将DB更改为以下内容:
Matches Table
id
created_at
updated_at
Participants Table
id
user_id
match_id
created_at
updated_at
Users table
id
username
email
etc...
Quiz Table
id
match_id
etc...
起初看起来似乎更多,但事实证明,从长远来看,它更容易使用,因为如果您计划进行更高级的查询,它可以让您更轻松地查询数据。然后,您可以对user_id和match_id执行唯一索引。如果你需要的只是快速而又脏的,那就按照你已有的方式进行操作,然后添加一些PHP验证。如果您希望从长远来看正确完成并计划进行更高级的查询,则应考虑更改表结构。