Я делаю модель данных для лиги роллер-дерби, чтобы отслеживать их матчи. Я отслеживаю такие вещи, как время круга, пенальти за круг, пенальти за период и пенальти за матч.
Проблема в том, что в некоторых случаях у меня будут только общие данные; У меня может быть «пенальти за матч» для одного матча и «пенальти за период» для другого. Таким образом, на самом низком уровне для некоторых матчей у меня будут очень подробные данные (штрафы за ход), а на самом высоком уровне у меня будут штрафы за матч.
Я не уверен, как смоделировать/использовать это для создания отчетов, когда у меня нет высокой детализации для некоторых записей. Я думал о чем-то вроде этого:
PenaltiesPerMatch MatchID PenaltyCount
PenaltiesPerPeriod MatchID PeriodID PenaltyCount
PenaltiesPerLap MatchID PeriodID LapID PenaltyCount
Но меня беспокоит то, что информация более высокого уровня может быть получена из более низкого уровня. Должен ли я дублировать записи (например, заполнять запись о штрафах за период данными, которые также содержатся в штрафах за круг, суммированных по периодам?) или вести уникальные записи (не вводить штрафы за период для данных, которые у меня уже есть в штрафах? за круг; рассчитайте путем суммирования по периоду).