Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Single Table Inheritance & Doctrine

Pagina: 1
Acties:

  • Mattijs.id
  • Registratie: December 2011
  • Laatst online: 23-11 21:07
Hoi allen,

Ben bezig met een vote systeem in symfony2 & doctrine 2, en ik loop tegen het volgende probleem aan:

Ik heb een Vote klasse. attributen: up, down en datecreation

Verder heb ik een ForumThread en een ForumPost die van Vote extenden.

Tot dus ver werkt het allemaal leuk.

Maar nu wil ik vanuit ForumThread, een klasse die extend van Vote, de getForum() aanroepen, en Forum extend niet van Vote. Het forum attribuut binnen ForumThread wordt simpelweg niet gevuld.

Eventjes voorbij de hele lelijke oplossing van het los assignen van het ding, zijn er nog andere opties?

  • Styxxy
  • Registratie: Augustus 2009
  • Laatst online: 10:31
Ik heb het gevoel dat "Vote" eerder een property is van "ForumThread" en "ForumPost" (het zijn toch geen votes? maar hebben votes?).

  • Mattijs.id
  • Registratie: December 2011
  • Laatst online: 23-11 21:07
Styxxy schreef op dinsdag 06 november 2012 @ 21:40:
Ik heb het gevoel dat "Vote" eerder een property is van "ForumThread" en "ForumPost" (het zijn toch geen votes? maar hebben votes?).
Dat dacht ik eerst ook, maar hoe wil je dat in je database modelleren.

ForumThread en ForumPost hebben inderdaad votes, maar om te zorgen dat er meer als 1 vote kan komen op 1 specifieke thread of post, krijg je dan dat we de vote tabel uitbreiden met een 'description' o.i.d. waarin het klassetype wordt neergezet. waarbij het Id van ForumThread weer een foreign key is naar de vote id.

Ben met je eens dat het nu niet netjes is, maar daarom vraag ik ook om hulp =P En omdat het niet netjes is zal die forum property binnen forumthread ook niet vullen.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Euh; een vote op een thread is iets anders dan een vote op een post. Ja, het is allebei een "vote", maar het zijn twee verschillende zaken op dat niveau. Een autowiel is ook geen fietswiel (En nu komt er een wijsneus vertellen wat er allemaal niet klopt aan deze analogie :X :P ). Je hebt dan ook een ForumThread die een (thread)votes property heeft en een ForumPost die een (post)votes property heeft. Die votes horen ook elk in hun eigen tabel; threadvotes en postvotes en niet in een enkele tabel waarbij je een extra attribuut "post of thread" opneemt. Daarmee krijg je namelijk ook problemen met je FK; verwijst 'ie nou naar de ForumPosts PK of de ForumThreads PK?

Het enige dat je zou kunnen doen is een "Vote" maken en daar een PostVote en ThreadVote van afleiden (extenden van zoals jij dat zegt).

[ Voor 16% gewijzigd door RobIII op 06-11-2012 21:51 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Mattijs.id
  • Registratie: December 2011
  • Laatst online: 23-11 21:07
RobIII schreef op dinsdag 06 november 2012 @ 21:49:
Euh; een vote op een thread is iets anders dan een vote op een post. Je hebt dan ook een ForumThread die een (thread)votes property heeft en een ForumPost die een (post)votes property heeft. Die votes horen ook elk in hun eigen tabel; threadvotes en postvotes en niet in een enkele tabel waarbij je een extra attribuut "post of thread" opneemt. Daarmee krijg je namelijk ook problemen met je FK; verwijst 'ie nou naar de ForumPosts tabel of de ForumThreads tabel?

Het enige dat je zou kunnen doen is een "Vote" maken en daar een PostVote en ThreadVote van afleiden (extenden van zoals jij dat zegt).
Mijn doel was inderdaad om iets van een centraal vote systeem te hebben, en op die manier kan het inderdaad wel gewoon. Ik ga kijken hoever ik kom ! =P

Zat dus gewoon verkeerd te denken >.<