【问题标题】:Why is ON DELETE CASCADE declared on child tables instead of their parent?为什么在子表而不是父表上声明 ON DELETE CASCADE?
【发布时间】:2020-10-21 22:48:01
【问题描述】:

如果一个父表有多个子表,在父表上声明ON DELETE CASCADE不是更有意义吗?这样,就不必在每个子表上添加ON DELETE CASCADE

【问题讨论】:

  • 父表应该如何“知道”何时定义新的子表?

标签: sql database postgresql database-design


【解决方案1】:

首先 - 很明显 - 您可能不希望在所有外键关系上使用 on delete cascade。每个外键都可以有自己的行为,这在定义外键的地方定义。

也很重要。删除行为是在与将要发生删除的表关联的属性上分配的。这比让主表决定只删除一堆其他表中的记录更符合 SQL 的精神和理智。

【讨论】:

    猜你喜欢
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 2010-12-20
    • 1970-01-01
    相关资源
    最近更新 更多