我在我的数据库中创建外键时遇到了一些麻烦。这是我的表格的解释模型:
笔记
* (PK) NOTE_ID BIGINT
* TITLE VARCHAR(200)
* DATE DATETIME
* SERIES_ID BIGINT
系列
* (PK) SERIES_ID BIGINT
* TITLE VARCHAR(200)
* DESCR VARCHAR(1000)
我正在尝试在NOTE
和SERIES
by之间建立“有”关系SERIES_ID
。我认为在两个表之间设置外键SERIES_ID
是解决方案,但是当我尝试创建它时,出现以下错误:
错误:被引用的表“dbo.SERIES”中没有与外键“ FK_SERIES_NOTE ”中的引用列列表匹配的主键或候选键。无法创建约束
我正在使用我设置的 GoDaddy SQL Server 附带的 Web 数据库管理器,所以我不确定它尝试使用的底层查询是什么,或者我会发布它。
归根结底,这一切都是为了创建一个关系,以便我的 Note 对象的 NHibernate 映射将包含与 Series 对象的一对一关系。不过,我什至可能没有尝试用外键以正确的方式解决这个问题。
我会以正确的方式解决这个问题吗?
编辑: 为了尝试将表与更简单的示例配对,我删除了我认为是几个非关键列。但是,我最终留下了一个字段,该字段实际上是系列表上复合主键的一部分。所以,因为我试图将外键分配给复合键的一部分,所以不允许我这样做。
最后,我再次查看了我的表的结构,发现我实际上不需要复合键的另一部分 - 删除后,外键的分配现在工作得很好。