标签: mysql sql database-design relational-database constraints
我一直在寻找一种方法来限制超类的记录参与其中一个子类记录,我相信它被称为参与{Mandatory OR}。我找到了一些关于如何使用CONSTRAINT CHECK但只限制多重性的例子。
虽然我可以使用将要使用数据库的应用程序逻辑来保护它,但我更喜欢使用数据库定义语言设置约束。
有可能吗?
下面我上传了一张图片,上面有我想要实现的内容,正如您在消息表中看到的那样,有一条消息与UserMessage和GroupMessage都不匹配。
答案 0 :(得分:2)
如果没有延迟的外键,这是不可能的声明性地,MySQL不支持。
更多信息here,here和here。