我有兩個對象: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