sqlalchemy类的别名?

2024-04-20 01:11:39 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的基础课

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'。你知道吗


Tags: nameidtypeargsphonecolumnprodproduct
1条回答
网友
1楼 · 发布于 2024-04-20 01:11:39

在某种程度上,这取决于您试图实现的目标,但是从您的示例来看,您试图实现的目标在SA文档中被称为Single-Table Inheritence。链接页面上列出的示例与您的示例非常相似,带有Employee == ProductManager == VapourWare(在此处插入Dilbert笑话)。你知道吗

相关问题 更多 >