Веб-разработка. Помощь в конкретном вопросе. Пишу проект на FastAPI, есть один вопрос по созданию смежная таблица для связи M to M: --------------------------------------- |Subject_user_association| -------------------------------------- | FK | user_id | -------------------------------------- | FK | subject_name | поскольку поля user_id, subject_name , являются FK и для других таблиц, решил написать базовый mixin, для определения FK, а потом сделать два наследника для создания FK user_id и FK subject_name, получилось следующие: class BaseMixin: _back_populates: str | None = None _field_fk: str = 'id' _table_name: [Email скрыт] def _create_fk(cls)-> Mapped[int | str]: return mapped_column(ForeignKey(f'{cls._table_name}.{cls._field_fk}'))@classmethod def _create_relationship(cls): return relationship( f“{cls.__name__}“, back_populates=cls._back_populates, ) class UserRelationMixin(BaseMixin): _table_name = 'user' @declared_attr def user_id(cls) -> Mapped[int]: return cls._create_fk() @declared_attr def user(cls) -> Mapped['User']: return cls._create_relationship() class SubjectRelationMixin(BaseMixin): _table_name = 'subject' _field_fk = 'name' @declared_attr def subject_name(cls) -> Mapped[str]: return cls._create_fk() @declared_attr def subject(cls) -> Mapped[“Subject“]: return cls._create_relationship() но при создании таблицы: class SubjectUserAssociation( SubjectRelationMixin, UserRelationMixin, Base, ): pass Создается следующее: sa.ForeignKeyConstraint(['subject_name'], ['subject.name'], ), sa.ForeignKeyConstraint(['user_id'], ['subject.name'], ), А хочу реализовать следующие: sa.ForeignKeyConstraint(['subject_name'], ['subject.name'], ), sa.ForeignKeyConstraint(['user_id'], ['user.id'], ), Я понимаю почему это происходит, но не могу придумать как реализовать задуманный результат.