MySQL唯一和NULL索引建议

时间:2017-07-17 12:06:13

标签: mysql indexing database-design unique-constraint unique-index

我有一个独特的索引要求,我无法弄明白。

我表中的三列

Code (VarChar)  |  User(Int - Nullable)  |  Item(Int - Nullable)  

我在Code AND User上设置了一个唯一索引,在Code AND Item

上设置了另一个索引

这意味着,如果useritem,我们就不能有多个引用相同NULL的代码,并且我们不能有多个代码引用同一个item user 1}}如果NULLCode (VarChar) | User(Int - Nullable) | Item(Int - Nullable) 12345678 | NULL | 1 12345678 | 1 | NULL 12345678 | 2 | 1 ** This row clashes on ITEM **

但我有第三个案例......

我希望能够拥有与用户AND和项目相关的代码,这些代码可能已经存在于相同的项目或用户。但是我不能这样做,因为它会与上面的一个索引冲突。

因此,鉴于上述独特索引,我还希望能够插入这些记录

ArrayList<String>> buttonresourceIds = new ArrayList<String>>();
ArrayList<String>> buttonresourceIds2 = new ArrayList<String>>();

for(int i=0;i<buttonresourceIds.size();i++){

    for(int j=0;j<buttonresourceIds2.size();j++){
        if(buttonresourceIds.contains(buttonresourceIds2.get(j))){
            System.out.println("Exist : "+buttonresourceIds2.get(j));
        }else{
            System.out.println("Not Exist : "+buttonresourceIds2.get(j));
        }
    }
}

这是可能还是我再做一些愚蠢的事情了??

1 个答案:

答案 0 :(得分:0)

对 - 答案似乎只是“不要使用NULL

因此,如果我使用0而不是NULL,那里不需要ItemUser数据,我可以拥有我需要的唯一约束!