[英]foreign key mysql
我有以下表格:
PROFILE table {
user_id INT,
apitype enum('facebook' , 'main')
}
USER table {
id INT
}
PROFILE.user_id
是指向USER表中ID的外键,但PROFILE.apitype = 'main'
所以基本上PROFILE.user_id
并不是指一个ID在user表中,如果PROFILE.apitype != 'main'
如何在MYSQL中完成此操作?
好吧,因为这是逻辑,所以应该在应用程序而不是数据库中处理。
您可以在配置表中将user_id添加为可为空,使连接成为可选,并根据您使用的存储引擎尝试触发器(尽管在mysql中对其了解不多)。
我认为您无法在Mysql中以简单的方式完成此操作。
例如在Postgres中,您有一个检查约束,您可以在其中检查apitype是否为main,然后user_id必须为null。
在Mysql中,您只能使用触发器执行此操作,但并非如此简单。 我认为对您来说最简单,最可靠的方法就是在您的应用程序中进行检查。 但是您仍然可以在user_id上设置外键,即使有时它为null
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.