【发布时间】:2017-10-02 04:27:18
【问题描述】:
您好,亲爱的 Stack Overflow 社区,
我已经搜索了好几个小时,但在我非常独特的场景中找不到解决方案。
也许你们可以帮忙。
假设我们有two tables。
|domain_realm | | password_policy |
|-------------------------------- | | ---------------------------------------|
|id domain password_policy_id | | id min_chars min_numbers min_length |
|1 1 11 | | 11 3 2 |
|2 1 12 | | 12 4 1 |
一个叫domain_realm,另一个叫password_policy。
这是一个 OneToOne 关系,因此一个domain_realm 只有一个password_policy。
现在出现了这种情况下非常独特的情况:domain_realm 持有 password_policy_id(或多或少是 fk)而不是 password_policy 持有其父级的外键。
为什么有人会这样做?
假设password_policy是许多其他不使用域领域的应用程序包的一部分。因此,必须保持表中没有其他应用程序不需要的任何特定行(例如fk_domain_relam)。
现在,在删除 domain_realm 时,似乎无法自动删除 (ON DELETE CASCADE) 相关的 password_policy。
有没有办法通过 SQL 方式执行此操作,还是我必须知道并确保在我的代码中删除 password_policy?
这会很糟糕,因为如果我必须直接在数据库中删除domain_realm(调试或支持原因),我已经创建了一个孤儿,我必须知道这一点。否则孤儿将永远留在那个数据库中。
非常感谢您甚至阅读本文。
【问题讨论】:
-
您在不提供结构的情况下询问有关结构的问题?..
-
不知道你的意思和/或需要什么。我的结构有一个图形和一个非常准确的解释。 :-(
-
首先,请提供格式化文本,而不是图片。其次,您的链接已损坏;)
-
链接适用于我的多种设备。添加了格式化的文本结构。我已经有了我需要的答案,但也许是这样。有更好的,谁知道呢。希望对您有所帮助。
-
酷,谢谢。我想了解“(或多或少fk)”背后隐藏的是什么,但你有你的答案,所以没关系。也请阅读meta.stackoverflow.com/questions/285551/…
标签: sql foreign-key-relationship one-to-one postgresql-9.4 cascading-deletes