У меня есть эта структура таблицы (она похожа на Python / SQLAlchemy, но я считаю, что это почти псевдокод):
class Sport:
id = Column(Integer, primary_key=True)
class Team:
id = Column(Integer, primary_key=True)
sport_id = Column(Integer, ForeignKey('sports.id')) # relationship to Sport
class League:
id = Column(Integer, primary_key=True)
sport_id = Column(Integer, ForeignKey('sports.id')) # relationship to Sport
class Match:
id = Column(Integer, primary_key=True)
team_home_id = Column(Integer, ForeignKey('teams.id')) # relationship to Team
team_away_id = Column(Integer, ForeignKey('teams.id')) # relationship to Team
league_id = Column(Integer, ForeignKey("leagues.id")) # relationship to League
Я хотел бы ввести некоторое ограничение на совпадения (или триггер et c.) чтобы все Team
s и League
имели одинаковые связанные Sport
.
Что SQL мне нужно выдать в моей БД для создания такой проверки или, в идеале, Есть ли способ достичь этого с помощью SQLAlchemy (все классы являются производными от DeclarativeBase, я просто опустил его в коде)?