Списки статистики спортивной лиги базы данных SQL

Я делаю базу данных для хранения баскетбольной статистики. Я пытаюсь определить, является ли мой подход к отслеживанию списков разумным.

В течение сезона игроки могут сменить команду или полностью покинуть лигу. Я хочу отслеживать это и поддерживать возможность запроса:

  • Статистика игрока с разбивкой по его владениям в каждой команде
  • Статистика команды (которая в основном определяется их игроками) за любой период времени, например за сезон, включая все игры, в которые играл любой игрок за команду.
  • Составы команды на любую дату

У меня есть подход, но мне немного трудно подумать о его возможных ограничениях в будущем.

  • Таблица playerStats содержит статистику каждого игрока за игру, с идентификатором gameID, teamID.
  • В таблице игр указана дата для каждого идентификатора игры.
  • В таблице составляются столбцы для playerID, teamID, fromDate и toDate.

Будет ли этого достаточно? Нужно ли мне даже составлять таблицу со списком, в противном случае мне нужен идентификатор TeamID в таблице playerStats или избыточно иметь оба? Является ли это вообще подходом для базы данных типа реестра.

Спасибо!

2 ответа

Решение
game
----------
game_id (pk)
team_1_id
team_2_id
play_date
location_id

roster
----------
player_id
team_id
begin_date
end_date

game_stats
-------------
game_id
player_id
stats...

Тебе не нужен Ростер. Вы можете хотеть иметь Team Таблица (teamID, teamName) если вы планируете иметь неописательные идентификаторы команды и / или ожидаете, что команды изменят свои имена.

Вам также понадобится Players таблица для хранения их имен плюс любые другие атрибуты, которые вы хотите сохранить..

Другие вопросы по тегам