Sorry guys, had to stop this project and moved to another temporarily. Now am back to Doctrine project. With all your suggestions, i did the schema design, feel confident!!!. Thank you very much, you guys (*Jasper, Herman and Alex*) are *AWESOME*!!!.
Thank you once again..... On Tuesday, April 1, 2014 4:36:40 PM UTC+5:30, Jàπ (Jasper N. Brouwer) wrote: > > That depends on how you define the model: > > In your case `Relation` is a single relation which can be traversed both > ways. This does indeed describe the real life better. > > The model I suggests looks more like what you see on many social networks, > how they implement the "friend" relationship: User(1) can specify that > User(2) is its friend, but that doesn't necessarily mean that User(2) wants > User(1) as its friend. Those are 2 separate things. > > It all depends on what Swapna wants. > > PS: I've implemented these kind of relations before, using both models. My > experience is that the "2 relations" approach is much easier to maintain > (even though is less strict/clean in a DDD sense). In case you want to > mimmic the "1 relation" model you do _need_ to implement something to keep > those 2 relations in sync (either have both, or have none, but _never_ just > one). But besides that everything else will be simpler to do. I believe > this is one of those things you just have to weigh the pros/cons and make > the appropriate decision for you particular use-case ;) > > PPS: I agree that RelationType would be a value object! > > -- > Jasper N. Brouwer > (@jaspernbrouwer) > > > On 1 Apr 2014, at 11:23, Herman Peeren <[email protected] <javascript:>> > wrote: > > > On Tuesday, 1 April 2014 10:48:22 UTC+2, Jàπ (Jasper N. Brouwer) wrote: > >> The reason I suggest using 2 `Relation` entities is because using this > throughout your app will be much easier. When you need to know all the > relatives of User(1), you can simple query all `Relation::$relatedToUser` > users where `Relation::$user` is User(1). > >> When using only one `Relation` entity, you would have to query for all > `Relation::$relatedToUser` users where `Relation::$user` is User(1) OR all > `Relation::$user` users where `Relation::$relatedToUser` is User(1). > > > > Many ways leading to Rome... Thank you for your advice, Jasper. Very > interesting. But I personally would use 1 Relation entity instead of 2 > here, as it is modeling one and the same relation, only named differently > from the other perspective. Your choice to model that as two different > "things" is a valid one, of course, but I prefer to stay as much as > possible to the domain I'm modeling. Probably this is just a matter of a > bit different implementation of the same model, but you cannot see child-of > and parent-of separately of each other: it is just the same "thing", with > two different names. > > -- You received this message because you are subscribed to the Google Groups "doctrine-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/doctrine-user. For more options, visit https://groups.google.com/d/optout.
