我在SQL Server中设置了一些表来存储回归的结果,以便以后可以检索它们并用于对不同的对象进行预测。
模型是层次结构的顶部,代表整个模型。模型作为多个术语和单个从属变量。术语表示在回归中用作独立变量的值。术语由多个变量组成。 99%的时间条款只有一个变量,但它的设置允许多个允许将来进行多项式回归之类的事情,例如,如果你想使用Height ^ 2作为值,那么高度变量将被包括两次一个单一的术语。 Variable表用于从特定对象类型中检索值。以下是关系的设置方式:
关系A 是ON DELETE CASCADE
。当我删除模型时,我希望删除所有条款。
关系B 是ON DELETE RESTRICT
。
关系C 是ON DELETE SET NULL
。
关系D 是NO ACTION
,因为VariableClass是一个可能永远不会被删除的静态表。
我希望关系B 也是CASCADE
,所以当删除一个Term时,所有变量也都会被删除。当使用它设置迁移时,我收到此错误:
在表'Variable'上引入FOREIGN KEY约束'FK_Variable_Term_TermId'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 无法创建约束或索引。查看以前的错误。
我理解了该消息的内容,并且查看图表看起来删除一个Term会删除变量,然后可以触发模型的删除等。但是关系C 是{{1并且SET NULL
列允许空值,因此如果删除模型的从属变量,它应该只将列设置为空,对吗?
我可以保留原样,并在代码中处理删除带变量的条款,但只允许级联更简洁。