Доброго времени суток!
Сейчас имеется таблица вида:
class TestResults(Base):
id = Column(Integer, primary_key=True)
test_name = Column(String)
result = Column(Integer)
И каждую сессию тестирования, в таблице оказывается 1000 одинаковых имен, иногда конечно состав меняется, но хочется избавится от дублирования имен, ссылаясь внешним ключем на другую таблицу.
Хочу переделать в такое, и использованием внешнего ключа, что бы избавиться от избыточности данных.
class TestName(Base):
id = Column(Integer, primary_key=True)
name = Column(String)
class TestResults(Base):
id = Column(Integer, primary_key=True)
result = Column(Integer)
name_id = Column(Integer, ForeignKey('test_name.id'), nullable=False)
name = relationship("test_name", foreign_keys=[name_id])
Так вот вопрос, если переделать это в новый вид, то перед записью результятов придется в коде делать два запроса, или даже три?
1. Найти есть ли уже имя теста в таблице имен, если нет, то создать.
2. Создать запись ссылаясь на id из шага номер 1.
Можно как-то организовать два действия одновременно? Иначе в цикле записи тысяча раза по два запроса будет очень долно выполняться.