I would probably do:

# Keep track of manufacturer names
t_manufacturer = Table(u'manufacturer', metadata,
Column(u'id', Integer, primary_key=True,
Column(u'name', String(20))
)

# Keep track of model names
t_model = Table(u'model', metadata,
Column(u'id', Integer, primary_key=True,
Column(u'manufacturer_id', Integer, ForeignKey(u'manufacturer.id')),
Column(u'name', String(20))
)

# Keep track of inputs available to models
t_source = Table(u'source', metadata,
Column(u'id', Integer, primary_key=True,
Column(u'pjlink', String(2)),
Column(u'text', String(20))
)

# Foreign key table for model/sources
t_model_2_source = Table(u'model_2_source', metadata,
Column(u'model_id', Integer, primary_key=True, ForeignKey(u'model.id')),
Column(u'source_id', Integer, primary_key=True, ForeignKey(u'source.id')),
)

# Persistent storage for installed projectors
# model_id would be an index for model_table.id
t_installed = Table(u'installed', metadata,
Column(u'id', Integer, primary_key=True),
Column(u'model_id', Integer, ForeignKey(u'model.id')),
Column(u'name', String(20)),
)

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to