Я пытаюсь создать приложение, похожее на диссонанс, но мне не удалось правильно установить отношения. Я использую таблицу связей "членов", чтобы связать пользователей с сервером. Я считаю, что пользователи и серверы должны хранить копию отношений, чтобы пользователь мог распечатать все серверы, к которым он подключен, и сервер мог видеть всех своих членов. Это код, который у меня есть.
members = db.Table('members',
db.Column('member_id', db.Integer, db.ForeignKey('user.id')),
db.Column('workspace_id', db.Integer, db.ForeignKey('workspace.id')))
class User(db.Model):
__tablename__="user"
id=db.Column(db.Integer,primary_key=True)
username=db.Column(db.String,nullable=False, unique=True)
workspaces = db.relationship(
"Workspace",
secondary=members,
primaryjoin=(members.c.workspace_id == id),
backref=db.backref('members', lazy='dynamic'), lazy='dynamic')
class Workspace(db.Model):
__tablename__="workspace"
id=db.Column(db.Integer,primary_key=True)
workspaceName=db.Column(db.String,nullable=False)
subgroups=db.relationship("subGroup",backref="workspace",lazy=True)
code = db.Column(db.String, nullable=False)
users = db.relationship(
"User",
secondary=members,
primaryjoin=(members.c.member_id == id),
backref=db.backref('members', lazy='dynamic'), lazy='dynamic')
Добавляю ли я обе стороны отношений или просто добавляю один раз?