我有两个对象:File和FileDetail。一个文件可以有很多FileDetails,但是FileDetail只能有一个文件。我可以得到这个工作,但我不能从数据库中删除任何关键约束(我无法删除文件行,因为FileDetail依赖于它,反之亦然)。我有以下YAML:一对多和一对一关系的学说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]
理想是什么,我想发生的事情是,当我删除的文件排,所有的孩子都FileDetails删除。它甚至会很好,如果我可以手动删除所有FileDetail行,然后在文件列,但由于键约束的我无法:
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`))
我怎么会得到这种关系的工作(一方为一对多,另一方为一对一)。或者我应该把它看作是双方多对多的?
+1。教他他所知道的一切。只花了一个小时... – johnwards 2010-07-04 18:35:11