Ho trovato in un libro alcune spiegazioni su come funzionano le tabelle autoreferenziali in SQLAlchemy (Python), ad esempio, ecco la classe Employee con un manager_id:
class Employee(Base):
__tablename__ = 'employees'
id = Column(Integer(), primary_key=True)
manager_id = Column(Integer(), ForeignKey('employees.id'))
name = Column(String(255), nullable=False)
manager = relationship("Employee", backref=backref('reports'),
remote_side=[id])
sfortunatamente, ancora non capisco come funzioni In questo caso, immagino che ogni Dipendente possa essere un manager (con un manager_id) e Employee contenga un riferimento a un manager, ma cosa significa backref = backref ('reports') e che cosa sono i report? È un altro tavolo? e che cosa è remote_side = [id] in questo caso? fa riferimento al datore di lavoro.id, per così dire che il tuo manager gestisce un datore di lavoro specifico.id o viceversa, che ogni datore di lavoro.id ha qualche manager con un manager_id?