On Sep 3, 2008, at 2:59 PM, [EMAIL PROTECTED] wrote:

>
> I have 1 table (mytable) which is structured somewhat like this:
> id = int (primary key)
> name = varchar()
> type = int
>
> Now all rows with a type, say 1 'constitute' a MyObject. And rows with
> type say 2 are MyOtherObject instances, and so on. So in my
> applications I want to create a class like this:
>
> class MyObject(object):
>    def __init__(self, name):
>        self.name = name
>
> Then I need to map this to the database. So I write a mapper like
> this:
> myobject_table = select([mytable], mytable.c.type ==
> 1).alias('somealias') (not sure if this is entirely correct. I'm
> writing this post at home and don't have access to my code at the
> office. But this is not the point so...)
> mapper(MyObject, myobject_table)

it is quite common and the pattern you describe is "single table  
inheritance".   You can map straight to the table and the "type"  
column will be taken care of for you.   You can configure subtypes  
corresponding to each value for "type" and Query for just that  
subclass (or for all classes).

http://www.sqlalchemy.org/docs/05/mappers.html#advdatamapping_mapper_inheritance_single

the feature is available in 0.4 and 0.5 but has some improvements to  
its behavior in the 0.5 series.




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to