我有一个我无法弄清楚的唯一索引要求。
我的表格中有三列
Code (VarChar) | User(Int - Nullable) | Item(Int - Nullable)
我在Code AND User
上设置了一个唯一索引,在Code AND Item
上设置了另一个索引
这意味着如果item
为NULL
,我们在任何时候都不能有多个代码引用同一用户
,并且我们不能有更多如果 user
为 NULL
item
的一个代码
但是我还有第三种情况...
我希望能够拥有与用户和项目相关的代码,该代码可能已经存在于相同的项目或用户中。但我不能这样做,因为它会与上面的索引之一冲突。
因此,鉴于上述唯一索引,我也希望能够插入这些记录
Code (VarChar) | User(Int - Nullable) | Item(Int - Nullable)
12345678 | NULL | 1
12345678 | 1 | NULL
12345678 | 2 | 1 ** This row clashes on ITEM **
这可能吗,还是我又做了一些愚蠢的事情!?
最佳答案
对 - 答案似乎只是“不要使用 NULL
”
因此,如果我在不需要 Item
或 User
数据的情况下使用 0 而不是 NULL
,我可以拥有唯一的约束我需要!
关于MySQL 唯一和 NULL 索引建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45143884/