7 messages in com.googlegroups.google-appengine[google-appengine] Re: model design c...
FromSent OnAttachments
noah31 Jul 2008 06:09 
Calvin Spealman31 Jul 2008 07:51 
noah31 Jul 2008 08:00 
g-man31 Jul 2008 13:01 
noah31 Jul 2008 15:11 
g-man31 Jul 2008 21:13 
Tim Hoffman31 Jul 2008 22:01 
Subject:[google-appengine] Re: model design choices, looking for feedback
From:g-man (greg@gmail.com)
Date:07/31/2008 01:01:28 PM
List:com.googlegroups.google-appengine

The best way to define a conceptual frame for your app is to create narrative 'stories' in plain language which describe all the relationships you are contemplating. If you fear revealing some key innovation, you can disguise them using generic terms.

Goo designers take much more time thinking about and planning the app than actual coding.

For example, I'm working on a Project Management system for my app, so I go like this:

A user can be an Owner and create a Company. A Company can have Employees. A Company can have Projects. A Project can have Employees assigned to it. Employees can have one of several Roles. Only an Owner can Hire or Fire Employees. Only an Owner can create or destroy a Project. Only an Owner can destroy a Company.

Thinking in this 'real world' way will help you get a handle on the relationships you need to create.

Bottom line, In my opinion, your descriptions were too abstract.

Could you try again to lay them out for us by telling a story?

Have fun!

On Jul 31, 8:01 am, noah <noah@gmail.com> wrote:

The reason that items do not have a list of users is that the relationship between a user and an item contains additional information. Think of this as a user subscribing to an item, but that subscription specifies additional information, such as 'delivery method'. This will be different for each user on a per-item basis.

Does that answer your question?

On Jul 31, 9:52 am, "Calvin Spealman" <iron@gmail.com> wrote:

Why don't items just have a list of users?

On Thu, Jul 31, 2008 at 9:10 AM, noah <noah@gmail.com> wrote:

This is my first time with object-based db, and want to know if I'm approaching a problem in a reasonable way.

Three db model classes:

Group - A grouping object for items, as well as group-specific info (name, etc...)

Item - An item in exactly one group

UserItemRel - Describes a relationship between a user an item - Multiple users have relations with items. There is relationship specific data, but the item itself does not change

The query I am struggling with is: select all items in a group for which a specific user has no relations.

My approach so far is to keep a per-item list of users which have at least one relation. Then, for a given group select the items for which a specific user is not in this per-item list.

The list seems to contain redundant info, but I am getting the feeling that is *ok*. I'd appreciate some feedback.