Добавить более одного внешнего ключа между двумя таблицами в SQLAlchemy - PullRequest
0 голосов
/ 11 февраля 2020

Я работаю над местным приложением Sports Fantasy. Приложение позволяет каждой команде включать 8 игроков, где игрок может быть в более чем одной команде. Я создал таблицу в базе данных для информации об игроке и другую таблицу для информации о команде. Я хочу подключить строку team к нескольким player строкам.

Мой текущий код:

class Player(Base):
    __tablename__ = 'player'
    id = Column(Integer, primary_key=True)
    name = Column(String(32), index=True, nullable=False)
    price = Column(Integer)
    position = Column(String(32))
    picture = Column(String(32), index=True)

class PlayerStatus(Base):
    __tablename__ = 'player_status'
    id = Column(Integer, primary_key=True)
    player_id = Column(Integer, ForeignKey('player.id'))
    round = Column(Integer)
    goals = Column(Integer, default=0)
    assists = Column(Integer, default=0)
    clean_sheet = Column(Integer, default=0)
    saves = Column(Integer, default=0)
    bonus = Column(Integer, default=0)
    minutes_played = Column(Integer, default=0)
    goals_conceded = Column(Integer, default=0)
    player = relationship(Player)

class Team(Base):
    __tablename__ = 'team'
    id = Column(Integer, primary_key=True)
    name = Column(String(64))
    user_id = Column(Integer, ForeignKey('user.id'), nullable=False)
    gk_id = Column(Integer, ForeignKey('player.id'))
    defender_1_id = Column(Integer, ForeignKey('player.id'))
    defender_2_id = Column(Integer, ForeignKey('player.id'))
    mid_1_id = Column(Integer, ForeignKey('player.id'))
    mid_2_id = Column(Integer, ForeignKey('player.id'))
    mid_3_id = Column(Integer, ForeignKey('player.id'))
    attack_1_id = Column(Integer, ForeignKey('player.id'))
    attack_2_id = Column(Integer, ForeignKey('player.id'))
    total_points = Column(Integer)

    player = relationship(Player)
    user = relationship(User)
...