我有一个简单的数据库表,我想保持简单(而不是将它分成3-5个较小的表)。为简单起见,这里是它的样子,有几个样本条目:
+----------+-----------+----------+--------+
| memberId | guestName | guestAge | date |
+----------+-----------+----------+--------+
| 123 | | | 1/2/13 |
+----------+-----------+----------+--------+
| | Bob | 30 | 1/2/13 |
+----------+-----------+----------+--------+
我想知道:有没有办法强制成员身份和日期的唯一配对,但不强制访客姓名或年龄?
注意:
我们可以在2013年1月1日有多名名为Bob的客人,年龄为30岁,从而在所有字段中创建一个唯一的密钥,而不是一个可行的解决方案。
我意识到我可以将客人和成员分成不同的表格,但这会使问题的其余部分(我已经停止简化)变得非常复杂。在这一点上根本不值得。
所以我的问题是:这是MySQL唯一密钥的可能或(可理解的)限制吗?