学说:与多个外键有1对多的关系

时间:2010-10-15 12:25:07

标签: php sql doctrine schema.yml

我正在使用 Doctrine 1.2 并寻找正确的语法 用于在 schema.yml

中的两个表之间创建 1:n关系

通常这可以通过以下方式完成:

BookChapter:
  columns:
    ...
  relations:
    Book:
      class: Book
      local: book_id
      foreign: id
      type: one
      onDelete: cascade

但在我的特殊情况下,有 2个外国主键

BookReader

book:
  type: integer(8)
  primary: true
reader: 
  type: integer(8)
  primary: true


BookReaderDetails

book_id: integer(8)
reader_id: integer(8)
...

是否可以使用doctrine模式文件定义这种关系?

1 个答案:

答案 0 :(得分:3)

Doctrine不能很好地使用多个主键,除非它们被用作多对多引用表(联结表)。

如果您想要1对多关系而不是多对多关系,那么最好将主键列添加到BookReader。然后,您可以在书籍和读者上添加唯一索引。