Ich habe ein SQLAlchemy-Modell in meiner Anwendung eingerichtet, das die Funktionalität von "Follower" auf Twitter nachahmen sollte, dh. Benutzer haben eine Viele-zu-Viele-Beziehung (sowohl Follower als auch Follower). Die Tabellen sind wie folgt strukturiert (sa ist das sqlalchemy Modul):SQLAlchemy Viele-zu-viele Beziehungen auf einer einzigen Tabelle
t_users = sa.Table("users", meta.metadata,
sa.Column("id", sa.types.Integer, primary_key=True),
sa.Column("email", sa.types.String(320), unique=True, nullable=False),
...etc...
)
t_follows = sa.Table("follows", meta.metadata,
sa.Column("id", sa.types.Integer, primary_key=True),
sa.Column("follower_id", sa.types.Integer, sa.ForeignKey('users.id'), nullable=False),
sa.Column("followee_id", sa.types.Integer, sa.ForeignKey('users.id'), nullable=False)
)
Ich habe jedoch in ein bisschen eine gesperrte Straße und versuchte, diese Beziehung zu verwenden orm.mapper zu erstellen, da die Sekundärtabelle verweist in beide Richtungen zur gleichen primären Tabelle. Wie würde ich diese Beziehung zum ORM abbilden?
Danke, das hat perfekt funktioniert. Meinten Sie, dass die folgende Tabelle keine ID-Spalte benötigt und eine zusammengesetzte PK verwenden kann? Ich sehe nicht, wie das mit der Benutzertabelle funktionieren könnte. – Travis
Ja, es war ein Fehler. Ich meinte folgenden Tisch. –
Ich stieß darauf und musste es deklarativ tun, hier ist das Äquivalent für zukünftige Finder. –