Я уже знаю, что невозможно работать с несколькими первичными ключами в Symfony 1 и Doctrine 1, но вы, ребята, знаете какие-нибудь хорошие обходные пути?
Общим обходным путем является добавление ключа auto_increment в таблицу-ответчик «многие ко многим», а не определение отношений, просто установление стандартных отношений внешнего ключа с таблицами. Пока у вас есть индекс на двух столбцах, производительность будет прекрасной.
Помимо отношений «многие ко многим» доктрина1 не работает с первичным ключом по нескольким колонам. Но если вы хотите использовать отношения «многие ко многим», используйте это следующим образом:
BlogPost: columns: user_id: integer title: string(255) body: clob relations: User: local: user_id foreign: id type: one foreignType: one foreignAlias: BlogPosts Tags: class: Tag foreignAlias: BlogPosts refClass: BlogPostTag local: blog_post_id foreign: tag_id Tag: columns: name: string(255) BlogPostTag: columns: blog_post_id: type: integer primary: true tag_id: type: integer primary: true relations: BlogPost: local: blog_post_id foreign: id foreignAlias: BlogPostTags Tag: local: tag_id foreign: id foreignAlias: BlogPostTags
Если вы НЕ хотите / должны использовать отношения «многие-ко-многим», лучше использовать уникальный ключ для нескольких столбцов.