我有两个对象:File 和 FileDetail。一个 File 可以有多个 FileDetails,但一个 FileDetail 只能有一个 File。我可以让它工作,但由于键约束,我无法从数据库中删除任何内容(我无法删除 File 行,因为 FileDetail 依赖于它,反之亦然)。我有以下yaml:
File:
columns:
id:
type: integer
primary: true
autoincrement: true
...
fileDetail_id: integer
relations:
...
FileDetail:
local: fileDetail_id
foreign: id
cascade: [delete]
FileDetail:
columns:
id:
type: integer
primary: true
autoincrement: true
file_id: integer
...
relations:
...
File:
local: file_id
foreign: id
foreignAlias: Revisions
cascade: [delete]
理想情况下,我希望在删除 File 行时,所有子 FileDetails 也会被删除。如果我可以手动删除所有 FileDetail 行然后是 File 行,那就太好了,但是由于关键限制,我无法:
1451 - Cannot delete or update a parent row: a foreign key constraint fails (`file`, CONSTRAINT `file_filedetail_id_file_detail_id` FOREIGN KEY (`filedetail_id`) REFERENCES `file_detail` (`id`))
我将如何让这种类型的关系发挥作用(一方面是一对多,另一方面是一对一)。或者我应该把它当作双方的多对多?