这是我的基础课
class Product(Base):
__tablename__ = 'PRODUCT'
__table_args__ = {'quote':False}
...
id = Column(Integer, name='id_prod', primary_key=True)
type = Column(String(100),name='id_typ_prod')
__mapper_args__ = {'polymorphic_on': type}
因此,自然地,我们有许多从这个产品扩展而来的类,例如Phone和Cable,它们每个都映射到自己的表。你知道吗
class Phone (Product):
__tablename__ = 'PHONE'
...
出于某些原因,现在我想创建一个“alias”类,一个在数据库中没有相应表的类。像这样:
class VapourWare(Product):
...
如果我这样做了
class VapourWare(Product):
__tablename__ = 'PRODUCT'
__mapper_args__ = {'polymorphic_identity':'VapourWare'}
好像有用。但这是正确的还是推荐的方法?我在这里重复__tablename__ = 'PRODUCT'
。你知道吗
在某种程度上,这取决于您试图实现的目标,但是从您的示例来看,您试图实现的目标在SA文档中被称为Single-Table Inheritence。链接页面上列出的示例与您的示例非常相似,带有
Employee == Product
和Manager == VapourWare
(在此处插入Dilbert笑话)。你知道吗相关问题 更多 >
编程相关推荐