Design and Performance review

Vote:
 

Hi EPiServer team

I had a Comment content type which saves all the comments and replaies for each product, the comment contains 5-6 properties, one is parentID which reference to itself indicate it's a reply of the original comment.

At this stage, the client probably only has 100 products, each product may have 30 comments and each comment may have 20 replies, the product definetily will grow a lot ealier next year. 

So my concern is when I am querying the comment content type by using IContentRepository GetAll method, it seems does not perform the server side paging and will load all the comments (which include replies) at once, am I right?

if that's ture, would that be a potential performance issue when client has more products, and each of product has up to 1000 comments (20 comments, each has 50 replies) , any better way to overcome this issue?

 

Thanks,

V

#71095
May 09, 2013 14:30
Vote:
 

Once solution comes to my head after I create this thread is using dynamic store to save the data, I haven't used that a lot, but as I remember it supports the IQueryable, am I right?

#71096
May 09, 2013 14:36
Vote:
 

If you structure your content so comments to a product is children to the product and then that replies to a comment is children to the comment then you can use IContentRepository.GetChildren to load your items. GetChildren supports paging.

Certainly DDS can be used to store the data as well. If you need to be able to search your data (like e.g. get all comments from a specific user) then DDS is probably a better option. But if you only need to list items under a node (e.g. comments to a product or replies to a comment) then saving them as content will probably work just fine.

#71124
May 10, 2013 10:33
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.