跨多个列的MySQL独特组合

时间:2016-06-21 13:24:40

标签: mysql sql

我想在MySQL中有一个独特的列配对,但它可以按任何顺序排列......

所以,如果我有三列

Person1 Person2 Person3

并且他们都是FOREIGN个人的钥匙,我希望这些只能在表格中允许一次......

行:

1 2 3

相同
3 2 1 

相同
2 3 1

等等......所以只是做UNIQUE(Person1, Person2, Person3)并没有完成这个我不认为的任务。

1 个答案:

答案 0 :(得分:0)

我的解决方案(给定此模式)将使订单可预测。最简单的方法是按降序存储它们,以便第一行始终包含最小值,依此类推。这使查询更容易,并且您将无法添加具有相同成员的两行。

由于您的问题非常通用,我的回答很模糊。如果您提供了您要完成的示例,可能会有更好的方法。根据我的经验,当您发现自己拥有代表相同类型关系的列时,通常会更好地进行规范化。例如,从friend1,friend2,... friendN到每个用户的朋友表。