Flask SQLAlchemy:具有多个父级的子表?

瑞安 O。

我是flask_sqlalchemy 的新手,虽然我了解一对多和多对多关系的工作原理,但我很难理解如何将它们应用于我的特定数据类型。我有以下三个表:TeamStat、PlayerStat 和 Stat,它们大致描述如下

class PlayerStat(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.DateTime, nullable=False, default=datetime.datetime)
    player_id = db.Column(db.Integer, db.ForeignKey('player.player_id'), nullable=False)

class TeamStat(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.DateTime, nullable=False, default=datetime.datetime)
    team_id = db.Column(db.Integer, db.ForeignKey('team.team_id'), nullable=False)


class Stat(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    value = db.Column(db.String(80), nullable=False)

由于 Stat 是一种通用表类型,因此我希望在 PlayerStat 表(用于单个球员的统计数据)和 TeamStat 表(作为团队中所有球员的统计数据的总和)中使用它。有人可以帮助我了解如何以这种方式将一个子表引用到多个父表吗?

超级射击

使用关联表将您的统计表连接到您的球员和团队表。这个例子非常接近你已经在做的事情,除了date列被移动到 stat 记录表,我已经用未映射的表替换了你的PlayerStatTeamStat对象。

我假设您有两个 ORM 类,Player并且Team(不是 Flask-SQLAlchemy 抱歉,但概念保持不变):

plr_stat_assc = Table('plr_stat_assc', Base.metadata,
    Column('player_id', Integer, ForeignKey('player.id')),
    Column('stat_id', Integer, ForeignKey('stat.id'))
)

team_stat_assc = Table('team_stat_assc', Base.metadata,
    Column('team_id', Integer, ForeignKey('team.id')),
    Column('stat_id', Integer, ForeignKey('stat.id'))
)

class Player(Base):
    __tablename__ = 'player'
    id = Column(Integer, primary_key=True)
    stats = relationship("Stat", secondary=plr_stat_assc)

class Team(Base):
    __tablename__ = 'team'
    id = Column(Integer, primary_key=True)
    stats = relationship("Stat", secondary=team_stat_assc)

class Stat(Base):
    __tablename__ = 'stat'
    id = Column(Integer, primary_key=True)
    date = Column(DateTime, nullable=False, default=datetime.datetime)
    value = Column(String(80), nullable=False)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Flask和SQLalchemy NoForeignKeysError:无法确定关系User.posts的父/子表之间的联接条件

来自分类Dev

Flask - 具有多个可选参数的路由

来自分类Dev

Flask - 选择父级后生成子级选择

来自分类Dev

有关使用Flask + MySQL + Flask-SQLAlchemy的问题

来自分类Dev

Flask-SQLAlchemy按多个聚合分组

来自分类Dev

flask sqlalchemy关系中的多个外键

来自分类Dev

Flask-SQLAlchemy插入多个字典

来自分类Dev

Flask SQLAlchemy分页错误

来自分类Dev

Flask SQLAlchemy关系

来自分类Dev

Flask-SQLAlchemy TimeoutError

来自分类Dev

Flask/SQLAlchemy Insert Into Database

来自分类Dev

Flask + SqlAlchemy ALTER表

来自分类Dev

Flask SQLAlchemy关系

来自分类Dev

无法安装Flask SQLAlchemy

来自分类Dev

在Flask / WTForms中创建具有不同数量的重复子表单的表单

来自分类Dev

带flask-auth的flask-restful:具有不同身份验证的多个HTTP方法

来自分类Dev

Flask-SQLalchemy-从子类的父类获取关系参数

来自分类Dev

Flask-SQLAlchemy筛选与父模型的多对多关系

来自分类Dev

创建具有多个父级的子页面

来自分类Dev

PyCharm解析-flask.ext.sqlalchemy与flask_sqlalchemy

来自分类Dev

Flask-SQLAlchemy查询带有多个必需标签的多对多标签

来自分类Dev

SqlAlchemy Flask中的列参数

来自分类Dev

Flask-SQLAlchemy的隔离级别

来自分类Dev

用Flask-SQLAlchemy查询

来自分类Dev

Flask-SQLAlchemy-大于或等于

来自分类Dev

Flask sqlalchemy-最小应用

来自分类Dev

从flask_sqlalchemy导入UniqueConstraint

来自分类Dev

Flask SQLAlchemy order_by关系

来自分类Dev

Flask-SQLAlchemy多对多