Menyertai Berbilang Jadual dalam SQLAlchemy
Dalam SQLAlchemy, menyertai jadual membolehkan gabungan data daripada berbilang entiti berkaitan. Untuk menggambarkan ini, pertimbangkan contoh berikut:
Andaikan anda mempunyai kelas dipetakan berikut yang mewakili pengguna, dokumen dan kebenaran dokumen:
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"))
Untuk mendapatkan semula jadual yang mengandungi maklumat tentang pengguna, dokumen dan kebenaran dokumen untuk pengguna tertentu, anda boleh menggunakan pertanyaan berikut:
q = Session.query( User, Document, DocumentPermissions, ).filter( User.email == Document.author, ).filter( Document.name == DocumentPermissions.document, ).filter( User.email == 'someemail', ).all()
Ini pertanyaan:
Dengan melaksanakan pertanyaan ini, anda boleh mendapatkan semula semua maklumat yang berkaitan dengan cekap daripada tiga jadual yang berkaitan dalam satu permintaan, memberikan pandangan komprehensif data yang berkaitan dengan pengguna tertentu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyertai Berbilang Jadual dengan Cekap (Pengguna, Dokumen, Kebenaran) dalam SQLAlchemy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!