Два уровня записи
Карточка серии предназначена для общей рамки: название соревнования, участники серии, формат в той мере, в какой он дан источником, и родительский ID. Она не заменяет записи матчей.
Карточка отдельной игры содержит номер игры или стадию, участников в порядке протокола, время, статус, собственный ID первичного документа и поле parent_id. Одна игра — одна определённая единица наблюдения. Такой подход позволяет исправить один протокол, не переписывая остальные матчи серии.
| Тип карточки | ID | Parent ID | Содержание |
|---|---|---|---|
| Серия | SER-ORION-LAD-2025 | Серия «Орион — Ладога» | |
| Матч | SER-ORION-LAD-2025-G1 | SER-ORION-LAD-2025 | Игра 1 |
| Матч | SER-ORION-LAD-2025-G2 | SER-ORION-LAD-2025 | Игра 2 |
| Матч | SER-ORION-LAD-2025-G3 | SER-ORION-LAD-2025 | Игра 3 |
Разобранный фрагмент серии
Вымышленный документ серии: «Серия: Орион — Ладога. ID серии SER-ORION-LAD-2025».
Отдельные протоколы: «Игра 1. Орион — Ладога. ID матча SER-ORION-LAD-2025-G1»; «Игра 2. Ладога — Орион. ID матча SER-ORION-LAD-2025-G2»; «Игра 3. Орион — Ладога. ID матча SER-ORION-LAD-2025-G3».
Расшифровка: существует одна карточка серии и три карточки матчей. Во второй игре порядок сторон отличается от первой и третьей, поэтому его хранят на уровне конкретного матча. Нельзя заменить три протокола одной строкой «Орион — Ладога, серия»: тогда исчезнут номера игр, индивидуальные времена, статусы и источники.
- Создайте карточку серии с её ID как родительский объект.
- Для каждой игры создайте новую карточку с уникальным ID матча.
- Запишите ID серии в поле parent_id каждой игровой карточки.
- Сохраняйте порядок участников, время, статус и источник на уровне отдельной игры.
- Если нужно описать изменение, укажите, в какой карточке и каком поле оно произошло.
Граница между серией и агрегированием
Сведения о серии можно хранить как описание связи между играми, но это не даёт права механически складывать показатели разных матчей в одну запись. Для объединения непересекающихся групп требуются определённые числители и знаменатели; без явного определения показателя такая сводка может изменить смысл данных.
Например, число сыгранных матчей серии в учебном примере равно трём, потому что существуют три дочерние карточки с разными ID. Но это количество матчей не является результатом какой-либо отдельной игры и должно оставаться полем серии, а не подменять протокол одной из игр.
Если источник не подтверждает, что несколько игр образуют одну серию, общий parent_id не придумывают по совпадению соперников. В таком случае матчи оставляют отдельными, а связь отмечают только как неподтверждённую заметку.
