170 похожих чатов

Всем привет, есть знатоки в sqlalchemy orm? Кому не лень

объясните пожалуйста, такой вопрос.
Сделал две таблицы допустим parents и childs, сделал связь один ко многим, как я понял - это когда одна запись в parent имеет кучу записей в child. Когда я создаю новую запись в parents, то сразу могу создать для этой записи всех child. А вот как добавить новые строки в childs и указать им привязку к уже существующим parents.

7 ответов

17 просмотров

Посмотри backref. Если не ошибаюсь, оно

Rookie Crewkie
Посмотри backref. Если не ошибаюсь, оно

backref это вроде как псевдоним для атрибута и все

Peffko- Автор вопроса

Делал по примеру две таблицы User и Address. Также ещё были примеры с родителями и детьми. Но это не суть. class User(Base): tablename = 'user' id = Column(Integer, primary_key=True) name = Column(String) fullname = Column(String) def repr(self): return "<User(%r, %r)>" % ( self.name, self.fullname ) class Address(Base): tablename = 'address' id = Column(Integer, primary_key=True) email_address = Column(String, nullable=False) user_id = Column(Integer, ForeignKey('user.id')) user = relationship("User", backref="addresses") Затем я допустим добавляю в список юзера jack = User(name='jack', fullname='Jack Bean') И могу указать этому юзеру список адресов. jack.addresses = [Address(email_address='jack@gmail.com'), Address(email_address='j25@yahoo.com')] а вот как быть если мне нужно просто добавить новые адреса с привязкой к пользователю? Я могу напрямую указать user_id в столбце с внешним ключом?

Peffko
Делал по примеру две таблицы User и Address. Также...

Да, так и делается.И извлекается так же, джойнами или подзапросами.Внешние ключи больше,наверно, нужны для каскадных операций. Пы.сы.Поправьте, если я не прав, не до конца книжку ещё прочитал

Simon Tokugawa)
Да, так и делается.И извлекается так же, джойнами ...

Ну тут ещё и идея производительности. Например, некоторые движки настаивают на принудительной индексации внешнего ключа. Некоторые, нет. Если ключ не индексирован, то при удалении ты впираешься в фулл скан по таблице. Как это хендлить — решать автору.

Rookie Crewkie
Ну тут ещё и идея производительности. Например, не...

Собсна это же и про джойны, но это уже нужно смотреть эксплэйны.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта