这是情况 - >我在MySQL环境中使用两列数据(A和B - 两个整数)。 A和B是非唯一属性,但是A& A的每一行/切片都是B必须是独一无二的。
例如,这些是有效的条目:
A B --- --- 1 1 1 2 1 3
在这种情况下,第三行无效导致它违反了A和B的每个组合必须是唯一的规则:
A B --- --- 1 2 1 3 1 2
对于我在MySQL设置中建模此类关系的最佳方式是什么,其中两列的组合效果会创建主键?我可以将此逻辑减少到一个主键吗?在这种情况下,如何确保每个新行都不违反规则?
答案 0 :(得分:1)
您可以创建新的任意键值(通常是连续的整数),也可以从两列创建复合键。
答案 1 :(得分:1)
尝试一个独特的索引:
ALTER TABLE `table` ADD UNIQUE INDEX (`A`, `B`);
在此查询起作用之前,您必须对表进行重复数据删除,但一旦完成,您就可以保证表中有唯一的A + B行。查询可以同时使用,但不必:
SELECT * from `table` WHERE `A`=1 and `B`=2;