Verknüpfen mehrerer Tabellen in SQLAlchemy
In SQLAlchemy ermöglicht das Verknüpfen von Tabellen die Kombination von Daten aus mehreren verbundenen Entitäten. Um dies zu veranschaulichen, betrachten Sie das folgende Beispiel:
Angenommen, Sie haben die folgenden zugeordneten Klassen, die Benutzer, Dokumente und Dokumentberechtigungen darstellen:
class User(Base): __tablename__ = 'users' email = Column(String, primary_key=True) name = Column(String) class Document(Base): __tablename__ = "documents" name = Column(String, primary_key=True) author = Column(String, ForeignKey("users.email")) class DocumentsPermissions(Base): __tablename__ = "documents_permissions" readAllowed = Column(Boolean) writeAllowed = Column(Boolean) document = Column(String, ForeignKey("documents.name"))
Um eine Tabelle abzurufen, die Informationen über Benutzer enthält, Dokumente und Dokumentberechtigungen für einen bestimmten Benutzer können Sie die folgende Abfrage verwenden:
q = Session.query( User, Document, DocumentPermissions, ).filter( User.email == Document.author, ).filter( Document.name == DocumentPermissions.document, ).filter( User.email == 'someemail', ).all()
This Abfrage:
Durch die Ausführung dieser Abfrage können Sie effizient alle relevanten Informationen aus den drei zugehörigen Tabellen in einer einzigen Anfrage abrufen und so einen umfassenden Überblick über die Daten des angegebenen Benutzers erhalten.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Tabellen (Benutzer, Dokumente, Berechtigungen) in SQLAlchemy effizient verknüpfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!