Tek-çok-To And One-To-One İlişki için Doktrin yaml

0 Cevap php

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?

0 Cevap