Thank you very much. again.

-brad

On Jun 5, 10:57 am, Michael Bayer <[EMAIL PROTECTED]> wrote:
> this mapping:
>
> >    transaction_sale_join = join(transactions, sales)
> >    mapper(Sale, transaction_sale_join, inherits=transactions_mapper,
> > polymorphic_identity=3, properties={
> >        'line_items': relation(LineItem, backref='sale', cascade='all,
> > delete-orphan')
> >    })
>
> is incorrect.  The "inherits" configuration will create the join from
> transactions->sales for you - Sale should be mapped directly to "sales".
>
> On Jun 4, 2008, at 6:29 PM, Brad Wells wrote:
>
>
>
> > The complexity of the following setup is that of the transaction type
> > Sales also have their own table. I am unsure of how properly establish
> > this relationship between Transactions, Sales and TransactionTypes.
>
> > This setup so far allows me to create Sale objects and save them.
> > However Sale.query.all() (for example) results in: OperationalError:
> > (OperationalError) (1066, "Not unique table/alias: 'transactions'")
>
> > any advice is appreciated.
>
> > Tables:
>
> > transactions = Table('transactions', meta,
> >    Column('id', Integer, primary_key=True),
> >    Column('transaction_type_id', Integer),
> >    ForeignKeyConstraint(['transaction_type_id'],
> > ['transaction_types.id']),
> > )
>
> > transaction_types = Table('transaction_types', meta,
> >    Column('id', Integer, primary_key=True),
> >    Column('name', String(15)),
> >    Column('has_line_items', Boolean),
> > )
>
> > sales = Table('sales', meta,
> >    Column('id', Integer, primary_key=True),
> >    Column('address', Text),
> >    Column('shipping', Float),
> >    Column('handling', Float),
> >    Column('purchase_order', String(35)),
> >    Column('transaction_id', Integer),
> >    ForeignKeyConstraint(['transaction_id'], ['transactions.id']),
> > )
>
> > line_items = Table('line_items', meta,
> >    Column('id', Integer, primary_key=True),
> >    Column('position', Integer),
> >    Column('description', Text),
> >    Column('quantity', Float),
> >    Column('units', String(15)),
> >    Column('unit_rate', Float),
> >    Column('tax', Float),
> >    Column('transaction_id', Integer),
> >    ForeignKeyConstraint(['transaction_id'], ['transactions.id']),
> > )
>
> > Classes:
>
> > class Transaction(Entity):
> >    pass
>
> > class TransactionType(Entity):
> >    pass
>
> > class Payment(Transaction):
> >    pass
>
> > class Adjustment(Transaction):
> >    pass
>
> > class Receipt(Transaction):
> >    pass
>
> > # abstract class
> > class LineItemTransaction(Transaction):
> >    pass
>
> > class Cost(LineItemTransaction):
> >    pass
>
> > class Sale(LineItemTransaction):
> >    pass
>
> > class LineItem(Entity):
> >    pass
>
> > Mappers:
>
> >    mapper(TransactionType, transaction_types)
>
> >    transactions_mapper = mapper(Transaction, transactions,
> >        polymorphic_on=transactions.c.transaction_type_id,
> > polymorphic_identity=0,
> >        properties={
> >            'transaction_type': relation(TransactionType,
> > backref='transactions'),
> >    })
>
> >    mapper(Cost, inherits=transactions_mapper, polymorphic_identity=1,
> > properties={
> >        'line_items': relation(LineItem, backref='cost', cascade='all,
> > delete-orphan')
> >    })
> >    mapper(Payment, inherits=transactions_mapper,
> > polymorphic_identity=2)
>
> >    mapper(Receipt, inherits=transactions_mapper,
> > polymorphic_identity=4)
>
> >    mapper(Adjustment, inherits=transactions_mapper,
> > polymorphic_identity=5)
>
> >    transaction_sale_join = join(transactions, sales)
> >    mapper(Sale, transaction_sale_join, inherits=transactions_mapper,
> > polymorphic_identity=3, properties={
> >        'line_items': relation(LineItem, backref='sale', cascade='all,
> > delete-orphan')
> >    })
>
> >    mapper(LineItem, line_items)
>
> > -brad
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
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