我有一个表,用于存储上的服务的意见,表看起来是这样的:现在是否有可能有一个非空的外键指向MySQL数据库中的无行?
Comment table
---------------------------
comment_id (auto-increment integer, primary key)
comment (string)
email (string)
,会员系统添加到系统中,表中存储,看起来像这样的成员信息:
Member table
---------------------
member_id (auto-increment integer, primary key)
.... some other member info .....
email (string, unique)
成员可以将多评论,而一个评论只有一个成员留下,或者它可以通过一个非成员留下(即电子邮件中成员表中不存在)。我知道我可以通过打开一个新表格来处理它(member_comment_pair
),但是我很好奇,如果有一种方法,我可以在注释表中设置email
的外键,这样它允许email
可能无法找到在会员表中匹配?
NOTE:
我正在使用MySQL,但万一它不可能在MySQL中,但允许在其他类型的数据库系统中,我也想知道。
评论中的电子邮件是为了将来在客人决定成为会员时进行身份识别,因此不能设置为指向虚拟会员。它不能为空,因为电子邮件也用于评论的一些后续操作。我需要外键的功能,以便在有注释连接到它时不能删除成员。所以看来这3种解决方案不适用于我的情况...... – cytsunny
然后,不要通过电子邮件链接评论和成员,通过会员ID链接它们。一旦你这样做了,你就拥有了一个外键的所有好处,并且你可以免费使用你的电子邮件栏。如果评论是由登录成员撰写的,请自动填写他的电子邮件列。如果它是由客人写的,让他们填写任何他们想要的地址。 –