My web-app has a media upload facility which associates each uploaded media item with a collection of media items (for simplicity we’ll just refer to each group of media items as an album, though the encompassing entity for media items is not as simple a structure). Each of these “albums” has the potential to have custom viewability settings which specify who can view the album (a la Facebook).
I’m trying to generate a count of media items uploaded by a user for display on the user’s front page.The problem is, I can’t figure out a way to do this without perusing through the data of all the “albums” (in essence, its doing the same amount of work required to collect the viewable albums).
If all the albums had the same viewability settings, I could just maintain a count of the media items and manipulate it on upload & deletion. Since they can potentially all have different viewability settings, however, I have to check the viewability permission of the viewer for each “album” to make sure its media items can be included in the count that will be displayed to him.
Consider Facebook:
Upon looking at a user’s profile, you can see a count of photos uploaded by the user. Presumably this count is of all photos you’re allowed to view, and not the total count of the user’s photos. If this is true, it would be inefficient to peruse through all the album database rows (and rows in other tables, such as those containing the “Lists” of allowed viewers) just to generate a count; you still have another click to get to the page where you can view the photos (where a permission verification process will have to be completed again)!
Is there something I’m missing, or is this now sites handle items like these? Perhaps the process is completed the first time and the viewable albums are cached for subsequent use?
After momentarily blocking a friend from viewing some of my photos, then viewing the profile as him (using the “View as” option) at the top-right corner, it appears as though the photo count doesn’t change. In other words, the count is the value of all the photos uploaded by the user, regardless of the privacy settings on each.
I’d be grateful if anyone could confirm this.