определенного поля?
Просто у меня структура домена немного отличается от того, что есть в базе
домен:
@dataclass
class AnamnesisPoint:
med_card_id: int
category_id: int
answers: List[int]
алхимия:
anamnesis_point = Table(
"anamnesis_points",
metadata_obj,
Column("med_card_id", ForeignKey("med_cards.id"), primary_key=True),
Column("answer_id", ForeignKey("answers.id"), primary_key=True),
Column("category_id", ForeignKey("categories.id"), primary_key=True)
)
Например на 4 объекта Table приходиться один домен AnamnesisPoint со списком 4-х id-шников
Если нельзя изменить работу маппера, то как тогда можно решить эту проблему?
У тебя какая-то странная схема бд. Почему не сделать так, чтобы AnamnesisPoint: id med_card_id category_id AnamnesisPointAnswer: point_id answer_id (тут можно сделать так, чтобы ответ Answer сразу ссылался на AnamnesisPoint, но я не знаю бд) Что будешь делать в текущей структуре, если к AnamnesisPoint нужно будет добавить какую-то еще информацию?
Добавить поле к текущей таблице, но твой вариант более гибкий и позволяет это сделать с легкостью. Поэтому пожалуй воспользуюсь им, но есть ли вариант касающийся изначального вопроса?
Ты добавишь поле и будешь дублировать значение во всех строках, которые относятся к одному AnamnesisPoint?
Алхимия не умеет мапить несколько строк на одну объект. Хотя, она умеет мапить несолько строк из разных таблиц на один объект, но это нужно совсем для другого кейса. Твоя проблема решается перепроектированием бд
Да, я это уже понял
Обсуждают сегодня