В настоящее время я работаю над общим пакетом голосования для Symfony2, но наткнулся на ограничение Doctrine2 или мое собственное понимание его возможностей.
В этом пакете есть только один объект голосования, и он имеет отношение один-много с n другими объектами. Я знаю, как бы я это сделал, если бы у меня был простой SQL (ниже), но могу ли я сделать что-то похожее на следующее в Doctrine2? Если нет, можете ли вы порекомендовать мне альтернативные решения?
CREATE TABLE votes (
vote_id int unsigned not null auto_increment,
target_id int unsigned not null,
target_class varchar(64) not null,
vote_value tinyint(1) not null default 0,
PRIMARY KEY (vote_id)
);
CREATE TABLE voteable_entity_a (
-- whatever columns
);
CREATE TABLE voteable_entity_b (
-- whatever columns
);
Я заметил, что существует наследование одной таблицы, где я могу использовать столбец дискриминатора, но он предназначен для нескольких объектов, основанных на самом высоком классе голосования. Это не совсем то, что я хочу.
Худшее приходит к худшему, насколько это отвратительно, чтобы просто использовать QueryBuilder для всего?