What you are describing could be solved with inheritance. You would
define a base class and table for Orders and properties common to all
orders, and then a seperate class/table for each type with properties
specific to those types.

Table inheritance is covered in the SA docs, and I think SA can
determine what sublcass to use when you load an order - haven't tried
this myself though with SA.

Arnar

On 6/16/06, Koen Bok <[EMAIL PROTECTED]> wrote:
>
> Maybe a little metaphor to make it more simple.
>
> Let's say I make houses. The roof of the house can either be concrete or
> wood. Concrete and wood come in many types.
>
> Design:
>
> House
>  id
>  name
>
> Wood
>  id
>  name
>  treename
>
> Concrete
>  id
>  name
>  hardness
>
> Now if I have a House object it should have a roof relation which either
> links to a Wood object or a Concrete object. It NEEDS to be linked to one of
> them.
>
> Like this:
>
> >>> house = session.query(House).get(1)
> >>> print house.roof
> <Concrete id=123 name=SuperBeautiful hardness=500>
>
> >>> house = session.query(House).get(2)
> >>> print house.roof
> < Wood id=321 name=Oak treename='Oak Tree'>
>
>
>
> On 16-jun-2006, at 5:24, Michael Bayer wrote:
>
>
> whats wrong with this ?
>
> order_types
> ---------------
> type_id
> name
> from_stock_id
> to_stock_id
>
> ?
>
>
> On Jun 15, 2006, at 6:44 PM, Koen Bok wrote:
>
> Within my organisation we have orders. Orders move products between three
> entities: Suppliers, Stocks and Customers.
>
> The type of an order gets defined by the origin and the destination it is
> moving products. This way we can have the following types of orders:
>
>
> From: To: -> Stock BUYORDER
> Stock -> Supplier RETOURBUYORDER
> Stock -> Stock INTERNORDER
> Stock -> Customer SELLORDER
> Customer ! -> Stock RETOURSELLORDER
>
> How can I design objects/mappers to do this:
>
> >>> order = session.query(Order).get(1)
> >>> print order.type
> <Type id=123 name='INTERNORDER' from=<Stock id=2> to=<Stock id=4>>
>
> >>> order = session.query(Order).get(2)
> >>> print order.type
> <Type id=456 name='SELLORDER' from=<Stock id=4> to=<Customer id=1928>>
> _______________________________________________
> Sqlalchemy-users mailing list
> Sqlalchemy-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users
>
>
>
>
>
> _______________________________________________
> Sqlalchemy-users mailing list
> Sqlalchemy-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users
>
>
>
>


_______________________________________________
Sqlalchemy-users mailing list
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to