Diskriminerende Mange-til-en objektrelasjoner i Doctrine2

stemmer
1

Jeg jobber for tiden med en generisk stemme bunt for Symfony2, men har snublet inn i enten en begrensning av Doctrine2, eller min egen forståelse av sine evner.

I denne bunten, er det bare én Stem enhet, og den har en én-mange-relasjon med n andre objekter. Jeg vet hvordan jeg ville gjøre dette hvis jeg hadde vanlig SQL (nedenfor), men er det noe lignende jeg kan gjøre for å følgende i Doctrine2? Hvis ikke, kan du anbefale alternative løsninger for meg å undersøke?

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
);

Jeg la merke til det er Single-Table Arv, hvor jeg kan bruke en discriminator kolonne, men det er tenkt mot å ha flere objekter basert på den høyeste Stem klasse. Dette er ikke helt hva jeg vil.

Verste kommer til verst, hvor janky er det skal skje via bare å bruke QueryBuilder for alt?

Publisert på 20/05/2011 klokken 00:35
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Dette er egentlig ikke støttes, jeg hadde lignende funksjonsforespørsler før, men det er ganske vanskelig å støtte dette uten å utsette detaljene i domenemodellen. Følgende løsning benyttes i dag av Typo3:

http://git.typo3.org/FLOW3/Packages/TYPO3CR.git?a=blob;f=Classes/Domain/Model/ContentObjectProxy.php;h=34f642400c714e16df86f4373bae3e6ca1349320;hb=31de0404ca25c5036e4d4cfd9f9dc55878902afe

Svarte 20/05/2011 kl. 07:46
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more