对于FK,我是否应该始终插入此语句ON UPDATE CASCADE ON DELETE CASCADE
或者应该是ON UPDATE CASCADE ON DELETE SET NULL
我有很多查询,让我们把大陆带到国家/地区来说明城市到邻里流,或者让行业到公司品牌到本地商店流,其中子价值取决于父价值。然后有像系统代码这样的FK表,它们具有其他表使用的代码值,但不直接与子代相关。
所以我迷失了要使用的FK声明。我的目标是:
答案 0 :(得分:0)
我通常会避免级联,并将它们限制在真正需要的地方。你不打算删除一个大陆,对吗? 假设我们有一个经典样本:
我不允许任何级联,除了可能是Orders-> OrderDetails的级联删除(并且只有当业务说可以删除订单时,这是不确定的。) 但是,我会在Products表中有一个PhasedOut日期字段,以允许产品从目录中消失,但保留在数据库中,同样适用于客户:客户可能会消失,但仍保留在数据库中。