Data Model:

Aaron Brady castironpi at gmail.com
Mon Apr 13 05:10:35 CEST 2009


On Apr 12, 9:14 pm, Anthony <alantho... at gmail.com> wrote:
> I'm struggling on whether or not to implement GroupItem (below) with
> two separate models, or with one model that has a distinguishing key:
>
> Given:
> class ParentGroup:
>     a group of values represented by class GroupItem
>
> class ChildGroup:
>     a group of values represented by class GroupItem
>     foreign-key to ParentGroup (many Children sum to one Parent)
>
> Option A:
> class GroupItem:
>     foreign-key to ParentGroup
>     foreign-key to ChildGroup
>     GroupItemType in (ParentItem, ChildItem)
>     value
>     value-type
>
> Option B:
> class ParentGroupItem
>     foreign-key to ParentGroup
>     value
>     value-type
>
> class ChildGroupItem
>     foreign-key to ChildGroup
>     value
>     value-type
>
> What are my considerations when making this decision?
>
> Thanks!

You want a ChildItem to have membership in two collections:
ParentGroup and ChildGroup.  You also want a ParentItem to have
membership in one collection.  For example:

parentA: itemPA1, itemPA2, childA, childB
childA: itemCA1, itemCA2
childB: itemCB1, itemCB2

Or, listing by child,

itemPA1: parentA
itemPA2: parentA
itemCA1: childA
itemCA2: childA
itemCB1: childB
itemCB2: childB
childA: parentA
childB: parentA

Correct so far?



More information about the Python-list mailing list