У меня есть отношение многие ко многим в sqlalchemy, скажем, его Clubs
и Members
.
A Club
может иметь одного или нескольких членов, но не может иметь ни одного .
A Member
может быть частью ни одного, одного или нескольких клубов .
Так что это асимметрично с точки зрения конфигурации, и я подозреваю, что мой симметричный код ниже не будет по умолчанию ограничиваться этим.
ass_table = Table('association', db.Model.metadata,
Column('member_id', db.Integer, db.ForeignKey('member.id')),
Column('club_id', db.Integer, db.ForeignKey('club.id'))
)
class Member(db.Model):
__tablename__ = 'member'
id = db.Column(db.Integer, primary_key=True)
clubs = db.relationship('Club', secondary=ass_table, back_populates='members')
class Club(db.Model):
__tablename__ = 'club'
id = db.Column(db.Integer, primary_key=True)
members = db.relationship('Member', secondary=ass_table, back_populates='clubs')
Есть ли простое расширение, которое мне не хватает, которое обеспечивает целостность при необходимости?