Я начал изучать этот материал из Flask Mega Tutorial. Когда он попадает в отношения "многие ко многим", он создает таблицу ассоциаций следующим образом:
followers = db.Table('followers',
db.Column('follower_id', db.Integer, db.ForeignKey('user.id')),
db.Column('followed_id', db.Integer, db.ForeignKey('user.id'))
)
Поскольку я искал способы добавления некоторых метаданных относительно конкретной ассоциации между моделями, я обнаружил, что вы можете хранить эту подобную вещь в таблице ассоциаций. Однако пример этого, который я нашел, кажется, создает таблицу ассоциаций фактическая модель.
class DepartmentEmployeeLink(Base):
__tablename__ = 'department_employee_link'
department_id = Column(Integer, ForeignKey('department.id'), primary_key=True)
employee_id = Column(Integer, ForeignKey('employee.id'), primary_key=True)
extra_data = Column(String(256))
department = relationship(Department, backref=backref("employee_assoc"))
employee = relationship(Employee, backref=backref("department_assoc"))
В чем разница между этими двумя методами? Является ли метод модели обязательным для хранения метаданных в таблице ассоциаций или может быть выполнено то же самое с помощью верхнего метода?
Спасибо!