我的订单表格中有一个resellerID
列作为Nullable整数。在大多数记录中resellerID
是 NULL ,有时它包含与经销商表关联的整数,其中包含resellerID
和{{1列。
当我尝试在两个resellerName
之间添加关系时,我收到以下错误:
resellerID
问题是- Unable to create relationship 'FK_Orders_Resellers'.
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Orders_Resellers". The conflict occurred in database "sales", table "dbo.Resellers", column 'resellerID'.
列的可空性质吗?这是一个糟糕的设计选择吗?我该怎么办才能像专业人士一样修复?
数据库是由一位程序员设计的,该程序员离开了公司,可能我想修复它。
感谢。
编辑:即使Orders.resellerID
列仅包含 NULL 值,也会发生错误。
答案 0 :(得分:0)
订单表中的值null在您的转销商表中不可用,创建一个未在名称中指定的转销商,并将此值添加到订单表中,然后创建关系。
答案 1 :(得分:0)
您应该为转销商创建一个默认值,当订单表没有经销商的价值时,应该引用该默认值。有点像这样:
UPDATE Orders SET resellerID = -1 WHERE resellerID IS NULL
INSERT INTO Resellers (resellerID, resellerName) VALUES (-1, '');
Orders.resellerID
的代码更改为COALESCE(resellerID, -1)
或设置Orders.resellerID
列的默认值答案 2 :(得分:0)
问题一如既往地发生在列数据中。