SQLAlchemy tabelle autoreferenziali spiegate

0

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?

    
posta user2774480 25.11.2017 - 12:09
fonte

1 risposta

1

Significa solo che la relazione invertita con "manager" è "report" (un dipendente riferisce a un manager). Il remote_side dice solo quale colonna è usata nella tabella "remota" (che è nuovamente il Dipendente in questo caso) per stabilire la relazione.

    
risposta data 25.11.2017 - 12:29
fonte

Leggi altre domande sui tag