Für eine Datenbank, mit der ich experimentiere, wurde mir geraten, die Beziehung zwischen Match
und Team
von M2M in zwei 1-zu-1-Beziehungen zu ändern. Die Logik: Es gibt nur zwei Mannschaften für jedes gegebene Match.SQLAlchemy: Doppelte Eins-zu-Eins-Beziehungserklärung
Ich habe eine harte Zeit mit meinem Kopf um, wie man dies in meinem models.py
implementieren; hier ist das, was ich bisher (verkürzt) bekam:
class Match(db.Model):
id = db.Column(db.String, primary_key=True)
# One to One x2 with Team
hometeam_id = db.Column(db.Integer, db.ForeignKey('team.id'))
awayteam_id = db.Column(db.Integer, db.ForeignKey('team.id'))
team = db.relationship("Team", back_populates="match")
hoemteam_goals = db.Column(db.Integer, nullable=False)
awayteam_goals = db.Column(db.Integer, nullable=False)
class Team(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
points = db.Column(db.Integer)
matches_played = db.Column(db.Integer)
# Many side of M2M With Match
match = relationship("Match", back_populates="team", uselist=False)
Es scheint hier etwas zu fehlen, vor allem in der Erklärung von relationship
s in der Match
Seite.