我将我的用户表定义为外键,但不一定需要设置它们。即不得有相关记录。
在我的 MySQL 编辑器(Sequel Pro)中,我无法将 addressId 设为“允许 null”。它忽略输入。我正在使用最新版本。
当我在没有 addressId 的用户表中创建一个新条目时,它显示“无法添加或更新子行:外键约束失败......”。但我希望能够添加没有地址的用户!那可能吗?
或者我应该简单地删除外键?这样做的缺点是什么?
CREATE TABLE `User1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(200) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`password` char(32) DEFAULT NULL,
`addressId` int(11) NULL DEFAULT '0',
`created` datetime DEFAULT NULL,
`activated` datetime DEFAULT NULL,
`lastLogin` datetime DEFAULT NULL,
PRIMARY KEY (`id`,`addressId`),
KEY `FK_User_Locale` (`localeId`),
KEY `FK_User_Address` (`addressId`),
CONSTRAINT `FK_User_Address` FOREIGN KEY (`addressId`) REFERENCES `Address` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;