I don't see why you can't just have the one table with a Project id, organisation_id, etc. sure, some of the ids will be null, but at least you won't have the multiple tables. you could also investigate an inheritance model and introduce a CommentsContainer class, but with a single inheritance language, this could limit you.
On Thu, Jun 24, 2010 at 12:27 PM, Ian <[email protected]> wrote: > Thank you for your suggestions. Am I correct in assuming that under > both these suggestions I would be required to create intersection/ > linking tables for each Parent type/Comment combination? i.e. in > example above I would require additional Project_Comments and > Organisation_Comments tables and so on for each different type of > parent? > > This is ideally something I would like to avoid to limit the 'cluter' > if possible. > > Thanks, > Ian > > On Jun 24, 12:59 am, Diego Mijelshon <[email protected]> wrote: > > You can use many-to-many relationships (one table per Set), or map > Comment > > as a component. > > > > Diego > > > > On Wed, Jun 23, 2010 at 19:23, Ian <[email protected]> wrote: > > > Hi, > > > > > I would like to know what the best way to map a collection of child > > > objects, that may have different parent types. > > > > > For example, say I have a generic Comment class, which I want to reuse > > > to track comments associated with other entities such as Project, > > > Organisation, Document, etc...: > > > > > public class Comment > > > { > > > public string Comment { get; set; } > > > public string User { get; set; } > > > public DateTime CommentDate { get; set; } > > > .... > > > } > > > > > public class Project > > > { > > > .... > > > public ISet<Comment> Comments { get; set; } > > > } > > > > > public class Organisation > > > { > > > .... > > > public ISet<Comment> Comments { get; set; } > > > } > > > > > If I use a one-to-many relationship for the Comments property in both > > > Project and Organisation mapping files I will obviously run into the > > > problem of the Comment records in the DB not knowing whether its > > > parent/owner is a Project or an Organisation. > > > > > There should therefore be something allowing NHibernate to distinguish > > > what type of parent the comment record belongs to so it can load the > > > relevant comment records when loading a Project or Organisation. > > > > > Is there a good way of supporting this in NHibernate? It seems > > > Hibernate supports the notion of 'Top-level Collections' (http:// > > >www.xylax.net/hibernate/toplevel.html) to deal with exactly this type > > > of scenario, but I have found nothing in NHibernate. (It is possible > > > that it has been depracated in Hibernate as I also found a post > > > questionning whether this should be supported because it forces you to > > > break DB referential integrity as you no longer have FKs between child > > > and various parent records). > > > > > Many thanks, > > > Ian > > > > > -- > > > You received this message because you are subscribed to the Google > Groups > > > "nhusers" group. > > > To post to this group, send email to [email protected]. > > > To unsubscribe from this group, send email to > > > [email protected]<nhusers%[email protected]> > <nhusers%[email protected]<nhusers%[email protected]> > > > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/nhusers?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > > -- thanks cliff -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
