【发布时间】:2017-07-17 12:06:13
【问题描述】:
我有一个我无法弄清楚的唯一索引要求。
我的表中有三列
Code (VarChar) | User(Int - Nullable) | Item(Int - Nullable)
我在Code AND User 和Code AND Item 上设置了一个唯一索引
这意味着如果item 是NULL,我们在任何时候都不能有多个代码引用相同的user,如果user 是,我们不能有多个代码引用相同的item NULL
但我还有第三种情况……
我希望能够拥有与用户 AND 和项目相关的代码,该代码可能已经存在于同一项目或用户中。但我不能这样做,因为它会与上述索引之一发生冲突。
因此,鉴于上述唯一索引,我还希望能够插入这些记录
Code (VarChar) | User(Int - Nullable) | Item(Int - Nullable)
12345678 | NULL | 1
12345678 | 1 | NULL
12345678 | 2 | 1 ** This row clashes on ITEM **
这可能吗,还是我又在做蠢事了!?
【问题讨论】:
标签: mysql indexing database-design unique-constraint unique-index