For those who might find this useful, I altered my calculus slightly
and went this route:

Person
has n, :photos

Album
has n, :photos, :through => Resource

Photo
belongs_to :person, :required => true
has n, :albums, :through => Resource

Now if I could just figure out how to query on a many-to-many.

Thanks.


On Mar 15, 1:12 am, Neil Chaudhuri <n...@vidyasource.com> wrote:
> I have a fairly straightforward modeling task involving People,
> Albums, and Photos. Here are the business rules:
>
> *One person can have many photos.
> *One album can have many photos.
> *One album can have photos of many people.
> *An album can have multiple photos belonging to the same person, but
> not necessarily all the photos belonging to that person.
> *Given an album, I would like some way to aggregate sets of photos by
> the person they belong to (where each set is a subset of all the
> photos that person has). So for example, I would like to say that in
> Album 10, Bobby has his photos 9, 17, and 41 and Sally has her photos
> 47, 57, 93, 201, 203. Of course, Bobby and Sally both have a lot more
> photos than that but just not in this album.
>
> I would think the tables would look like this:
>
> Person
> id | name
>
> Album
> id | name
>
> Photo
> id | filename
>
> PersonAlbumPhoto
> person_id | album_id | photo_id
>
> My questions are these:
>
> *Is this a reasonable model for the business rules as I described? I
> am happy to hear of something more elegant or efficient.
> *How should I model my Ruby classes for Person, Album, and Photo to
> generate what I need?
>
> Thanks for the insight.

-- 
You received this message because you are subscribed to the Google Groups 
"DataMapper" group.
To post to this group, send email to datamapper@googlegroups.com.
To unsubscribe from this group, send email to 
datamapper+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/datamapper?hl=en.

Reply via email to