我正在尝试为孩子和父母创建一个数据库。表的样子。
ChildTable : 子 ID (pk) | 父 ID (fk) | 姓名
ParentTable :父 ID (pk) | 姓名
外键 ParentTable(parent-id) REFERENCES ChildTable(parent-id) ON DELETE CASCADE
问题: 父母可以有多个孩子,并且父表依赖于子表。如果父母有两个孩子,我们从ChildTable中删除一个孩子记录,它也会删除父母,而另一个孩子的记录必须存在于数据库中。
是否有任何其他 MySQL 方法/约束可以满足上述要求。
提前致谢。
更新:我想详细解释我的问题。
我想将以下规则应用于数据库:
- 父表中的一条记录必须始终依赖于子表中的任何一条或两条记录。(同样添加了 FK。)
- 有可能 2 个孩子可以指向同一个 parentID
- 如果我们删除一个具有 parentID 的孩子(比如“abc”),那么如果存在另一个具有相同 parentID 的孩子,则不能删除 parent id。
- 在删除具有相同 parentID('abc') 的第二个孩子时,现在必须将其删除,因为没有具有 parentID('abc') 的孩子。