Списки статистики спортивной лиги базы данных 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
таблица для хранения их имен плюс любые другие атрибуты, которые вы хотите сохранить..