Dosya ve FileDetail: ben iki nesne var. Bir Dosya birçok FileDetails olabilir, ancak bir FileDetail tek bir dosya olabilir. (Ben FileDetail buna bağlıdır çünkü Dosya satırı silin, ve tersi olamaz) Ben iş için bu alabilirsiniz, ancak ben, çünkü önemli kısıtlamaları veritabanından şey silemezsiniz. Aşağıdaki YAML vardır:
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]
İdeal ne olmasını istiyorum tüm çocuk FileDetails de silinir, ben dosya satırı sildiğinizde olduğunu. Ben sadece el ile tüm FileDetail satır ve ardından Dosya satır silmek olabilir eğer daha iyi olurdu, ancak çünkü anahtar kısıtlamaları ben yapamaz kulüpler:
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`))
Nasıl bir ilişki bu tip işe alacağı (Tek-çok bir tarafta, ama One-To-One diğer). Ya ben sadece bu tedavi gereken pek çok-çok her iki tarafta?