首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL将a指向b,将b指向a

SQL将a指向b,将b指向a
EN

Stack Overflow用户
提问于 2017-06-21 05:06:11
回答 1查看 33关注 0票数 0

我使用PHPMyAdmin (所以mySQL)来创建它。

我有两张桌子,相册和照片。当然,照片可以是相册的一部分,为此,我在相册之间使用外键。

但现在我希望能够在相册表格中放入一张照片,这样我就可以用这张照片作为我相册的封面。我尝试添加一个外键,但这给了我一个外键约束。

下面的表格可以帮助理解我的意思(foto = photo)。红线表示我想要实现的目标。

我对SQL不是很在行,所以任何帮助都是非常感谢的。

SQL相册:

代码语言:javascript
复制
CREATE TABLE `Albums` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Album_Naam` varchar(255) NOT NULL,
`Aanmaakdatum` datetime NOT NULL,
`FotoID` int(11) DEFAULT '1',
PRIMARY KEY (`ID`),
KEY `FotoID` (`FotoID`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1

SQL照片

代码语言:javascript
复制
CREATE TABLE `Foto` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Foto_Naam` varchar(255) NOT NULL,
`AlbumID` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `AlbumID` (`AlbumID`),
CONSTRAINT `Foto_ibfk_1` FOREIGN KEY (`AlbumID`) REFERENCES `Albums` (`ID`) 
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=latin1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-21 05:29:22

通过使引用字段可为空,可以使外键成为可选的;字段中的空值不违反对其施加的外键约束。这可以用来表示纯粹的可选关系,或者,就像这个问题一样,推迟设置半循环依赖关系中的值。

请注意,要从相册中删除封面照片,相册首先需要将其对该foto的封面引用设置为另一张照片,或设置为null。类似地,要删除专辑,您需要删除它的封面,因此首先将它的Foto设置为空。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44662986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档