From: Richard L. <ce...@l-...> - 2009-06-10 19:05:47
|
I would write it such that the getFoo() could accept multiple IDs, across the board. If every time you getPerson, you *always* get the Photos and Details, then just do one big-ass query... That's probably not the way it is. Instead, use some kind of cache to cache the results for a reasonable amount of time. Possibly with an easy peasy lemon squeezy way to purge it for specific user and/or photo and/or detail, when an insert/update happens. If you expect heavy load, read up on the trials and tribulations Facebook and others have gone through, because you can expect the same :-) On Wed, June 10, 2009 12:33 pm, Arlo Leach wrote: > Hi folks, > > I'm doing my first project with a fully object-oriented approach and I > have > a question about how you all would break the code apart. > > Let's say I have a social networking site where members can upload > photos, > and I want to display a particular member's photos. > > One approach is to have a Member object, with a method getPhotos, that > returns the IDs of the photos that belong to that member; and to have > a > Photo object, with a method getDetails, that returns the details for a > given > photo. In order to display a member's photos, I would first call > getPhotos > for the member, then call getDetails for each of the returned photos. > This > makes sense from an encapsulation perspective, but it seems wasteful > because > I'd have one initial database query plus an additional query for each > photo. > > I could build getDetails so that it can take a list of IDs and return > the > details for all the photos at once, and then I'd just have two > queries. Or I > could build a getPhotosByMember method that accepts a member ID as an > argument and returns the details for all the photos belonging to that > member. Then I'd be down to one query, but I would probably end up > building > several similar methods (e.g., getRecentPhotos) that would have > redundant > code. > > What would you say is the normal or accepted way to structure this? > > Thanks, > -Arlo > > _______________________________ > > Arlo Leach > 773.769.6106 > http://arlomedia.com > > > > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables unlimited > royalty-free distribution of the report engine for externally facing > server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > chiPHPug-discuss mailing list > chi...@li... > https://lists.sourceforge.net/lists/listinfo/chiphpug-discuss > -- Some people ask for gifts here. I just want you to buy an Indie CD for yourself: http://cdbaby.com/search/from/lynch |