MySQL:如果字段为空/零/空,则为唯一组合键

时间:2013-11-21 20:07:56

标签: mysql sql constraints unique

我有一个简单的数据库表,我想保持简单(而不是将它分成3-5个较小的表)。为简单起见,这里是它的样子,有几个样本条目:

+----------+-----------+----------+--------+
| memberId | guestName | guestAge |  date  |
+----------+-----------+----------+--------+
| 123      |           |          | 1/2/13 |
+----------+-----------+----------+--------+
|          | Bob       | 30       | 1/2/13 |
+----------+-----------+----------+--------+

我想知道:有没有办法强制成员身份和日期的唯一配对,但不强制访客姓名或年龄?

注意:

  1. 我们可以在2013年1月1日有多名名为Bob的客人,年龄为30岁,从而在所有字段中创建一个唯一的密钥,而不是一个可行的解决方案。

  2. 我意识到我可以将客人和成员分成不同的表格,但这会使问题的其余部分(我已经停止简化)变得非常复杂。在这一点上根本不值得。

  3. 所以我的问题是:这是MySQL唯一密钥的可能或(可理解的)限制吗?

0 个答案:

没有答案