Раздел 45 · Python backend: Тарбадель

Связи и нормализация

middle~30 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Узор так и висит над контрактом 0400, где его оставил прошлый урок. Подпись Клабса под ним одна, а записей о ней три, и все разные.

SELECT s.id, s.signer_id, s.signed_at, s.stamp, c.terms ->> 'поручитель' AS guarantor
FROM signatures AS s
JOIN contracts AS c ON c.id = s.contract_id
WHERE c.number = '0400';
 id | signer_id |       signed_at        |           stamp           | guarantor
----+-----------+------------------------+---------------------------+-----------
 11 |         5 | 2026-06-01 05:30:00+00 | 2026-06-01T08:30:00+03:00 | Клабс
 12 |         2 | 2026-06-01 06:00:00+00 | 01.06.2026 09:00 MSK      | Клабс
 13 |         1 | 2026-06-02 07:00:00+00 | 1780383600                | Клабс

Вопрос Лорры не про SQL, а про устройство Архива. Каждый факт в базе должен жить в одном месте, а все остальные места должны на него ссылаться. Тогда поправить факт можно одной строкой, и разойтись записям негде. Сегодня ты научишься видеть, где факт лежит дважды, как раскладывать таблицы так, чтобы он лежал один раз, и когда копию всё-таки оставляют нарочно.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.