簡體   English   中英

石墨烯和 SQLAlchemy:衍生自基礎 object 類型

[英]Graphene and SQLAlchemy: derivate from a base object type

我正在使用 Flask、Graphene、SQLAlchemy 和 Graphene-SQLAlchemy 構建一個應用程序,其中我實現了以下模型:

class User(db.Model):
    __tablename__ = "user"
    id = Column(Integer, primary_key=True)
    name = Column(Text, nullable=False)
    email = Column(Text, nullable=False)

class BusinessUser(db.Model):
    __tablename__ = "bis_user"
    id = Column(Integer, ForeignKey("user.id"), primary_key=True)
    vatNumber = Column(Text, nullable=False)

class LVUser(db.Model):
    __tablename__ = "lv_user"
    id = Column(Integer, ForeignKey("user.id"), primary_key=True)
    lv_num = Column(Integer, nullable=False)

我的目標是定義三個 GraphQL 類型,如下所示:

type User {
    id : ID
    name : String
    email : String
}

type BusinessUser {
    id : ID
    name : String
    email : String
    vatNumber : String
}

type LVUser {
    id : ID
    name : String
    email : String
    lvNum : Integer
}

但我正在努力尋找一種高效而優雅的方式。 有什么辦法可以讓我們說一個“基本” object 類型User並在我的基本類型的頂部創建BusinessUserLVUser類型,同時提供額外的字段?

請閱讀Composing Mapped Hierarchies with Mixins ,它似乎准確地描述了您正在尋找的場景和解決方案。

但是,由於您有其他兩個表中user.id的外鍵,這提示我一個 inheritance 可以使用Mapping Class Inheritance Hierarchies來實現,而實際策略將取決於數據庫級別的表的設計方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM