Я пишу бэкэнд базы данных мультимедийного архива и хочу использовать наследование объединенных таблиц. Я использую Python с SQLAlchemy с декларативным расширением. Таблица, содержащая запись мультимедиа, выглядит следующим образом:
_Base = declarative_base()
class Record(_Base):
__tablename__ = 'records'
item_id = Column(String(M_ITEM_ID), ForeignKey('items.id'))
storage_id = Column(String(M_STORAGE_ID), ForeignKey('storages.id'))
id = Column(String(M_RECORD_ID), primary_key=True)
uri = Column(String(M_RECORD_URI))
type = Column(String(M_RECORD_TYPE))
name = Column(String(M_RECORD_NAME))
Столбец type
является дискриминатором. Теперь я хочу определить дочерний класс A
udioRecord из класса Record
, но я не знаю, как настроить полиморфное отображение , используя декларативный синтаксис . Я ищу эквивалент для следующего кода (из документации по SQLAlchemy):
mapper(Record, records, polymorphic_on=records.c.type, polymorphic_identity='record')
mapper(AudioRecord, audiorecords, inherits=Record, polymorphic_identity='audio_record')
Как передать ключевые слова polymorphic_on
, polymorphic_identity
и inherits
мапперу, созданному декларативным расширением?
Спасибо
Jan