##########################################################
from sqlalchemy import *
meta = BoundMetaData('sqlite://', echo=False)

# Parents table.
parents = Table('parents', meta,
        Column("id", Integer, primary_key=True),
        Column("data", String(50), nullable=False)
        )

# Children_1 Table.
children_1 = Table('children_1', meta,
        Column("id", Integer, primary_key=True),
        Column("data", String(50), nullable=False)
        )

# Children_2 Table.
children_2 = Table('children_2', meta,
        Column("id", Integer, primary_key=True),
        Column("data", String(50))
        )

# Association Table.
# This is a generic table which can relate anything to parent.
assoc = Table('assoc', meta,
        # parents.c.id
        Column("parent_id", Integer, ForeignKey(parents.c.id)),
        # associate's id either children_1.c.id or children_2.c.id or any
other child.
        Column("assoc_id", Integer),
        # Which can be either 'child_1' or 'child_2' for now (can be used for
extending children
        # type, decides which table to look in.
        Column("assoc_type", String(20))
        )
#######################################################

I am a novice with respect to sqlalchemy & may be RDBMS as well.
How would you like to work on this scenario to achieve backwards
cascading (may not be the right word) which means when one deletes
one specific child from children_1 table (for example), there should
not be any
association entry, which associates that child to the parent, in the
association table as well?


--~--~---------~--~----~------------~-------~--~----~
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