gpt4 book ai didi

python - SQL炼金术。 1 列有 2 种不同的关系

转载 作者:太空宇宙 更新时间:2023-11-03 17:37:43 26 4
gpt4 key购买 nike

我与关联表有一个简单的多对多关系: enter image description here

具有以下数据:

匹配:enter image description here用户:enter image description here

用户数学:enter image description here

一个用户可以参加多场比赛和
一场比赛最多可涉及两名用户
我想在“Match”和“User”类中实现正确的关系

users_matches_table = Table('users_matches', Base.metadata,
Column('match_id', Integer, ForeignKey('matches.id', onupdate="CASCADE", ondelete="CASCADE")),
Column('user_id', Integer, ForeignKey('users.id', onupdate="CASCADE", ondelete="CASCADE"))
)

class Match(Base):
__tablename__ = 'matches'
id = Column(Integer, primary_key=True)

#relations
user1 = relationship('User', secondary = users_matches_table)
user2 = relationship('User', secondary = users_matches_table)

class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
username = Column(String)

#relations
matches = relationship('Match', secondary=users_matches_table)

但显然,Match.user1 和 Match.user2 关系应该有一些规则,这将使一个用户与另一个用户不同,所以我可以获得 match1.user1match1.user2 并且它们不会引用同一个用户。有什么想法如何做到这一点吗?

最佳答案

恐怕你不能这样做。我建议您只有一个关系 users 并验证插入查询。

关于python - SQL炼金术。 1 列有 2 种不同的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30975537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com