5 messages in com.googlegroups.sqlalchemy[sqlalchemy] references to polymorphi...
FromSent OnAttachments
svilen21 Feb 2007 07:05 
Michael Bayer21 Feb 2007 07:54 
sdob...@sistechnology.com21 Feb 2007 12:01 
Michael Bayer21 Feb 2007 15:15 
svilen22 Feb 2007 03:15 
Subject:[sqlalchemy] references to polymorphic concrete-inheritance
From:svilen (sdob@sistechnology.com)
Date:02/21/2007 07:05:13 AM
List:com.googlegroups.sqlalchemy

g'day.

How one can make such thing as a reference to concrete-inherited polymorphic mapper? e.g. if there are just two, A and B, B inherits A, both have full concrete tables. A has polymorphic mapper.

If both tables have separate primary ids, they will overlap as values - table_A.id=1 for some A() and table_B.id=1 for some B() are both ok; hence, query(A).getby_id(1) would return 2 objects via the polymorphic union. in this case, the unique key within the polymunion seems to be the id+type_discriminator; where type_discriminator effectively means "this id is from that table".

i see 2 possibilities here:

- use 2-field key: a tuple of discriminator(table_name) and id-in-that-table. How would one make references to those objects then? e.g. what would be the definition of Column( 'mylink_id', ...) be ? it becomes a link to multiple tables... Would the propertyLoaders support such multi-column key? or make some constructed single key instead?

- use one common sequence for filling both primary-keys of both tables. But this is limited to DBs which support sequences...

Any help?

ciao svil