Doctrine / MySql与多列PK表的关系

时间:2012-06-18 09:46:59

标签: php mysql symfony1 doctrine symfony-1.4

schema.yml(Symfony 1.4)中的My Post模型如下所示:

Post:
  columns:
    id: { type: bigint, notnull: true, primary: true }
    blog_id: { type: bigint, notnull: true, primary: true }
    user_id: { type: bigint, notnull: true }
    subject: { type: string(255), notnull: true }
    short_body: { type: text, notnull: true }
    long_body: { type: text }

如你所见,Post有一个多列PK。我的问题是“如何与此模型建立n:1关系?”

举个例子,我想要这样的东西:

PostComment:
  columns:
    post_id: { type: bigint, notnull: true }
    blog_id: { type: bigint, notnull: true }
    name: { type: string(255), notnull: true }
    email: { type: string(255) }
    text: { type: text, notnull: true }
  relations:
    Post:
      #Here is my problem. What should I write here?
      local: ????
      foreign: ????
      foreignAlias: Comments
      onDelete: cascade
      onUpdate: cascade

我该如何处理这种关系?

1 个答案:

答案 0 :(得分:1)

你做不到。 您可以为Post模型添加另一个主键,并将另外两个字段保持为唯一。如果你这样做,我强烈建议你将“id”作为你的主键,并使用另一个字段名称作为唯一的“blog_id”。 然后,就像往常一样使用PostComment中的关系。