具有层次结构的表:创建约束以防止通过外键实现圆度
假设我们有一个对其自身具有外键约束的表,如下所示: CREATE TABLE Foo (FooId BIGINT PRIMARY KEY, ParentFooId BIGINT, FOREIGN KEY([ParentFooId]) REFERENCES Foo ([FooId]) ) INSERT INTO Foo (FooId, ParentFooId) VALUES (1, NULL), (2, 1), (3, 2) UPDATE Foo SET ParentFooId = 3 WHERE FooId = 1 该表将具有以下记录: FooId ParentFooId ----- ----------- 1 3 2 1 3 2 在某些情况下,这种设计可能是有道理的(例如,典型的“雇员与老板-雇员”关系),无论如何:在我的方案中有这种情况。 …