Доброго времени суток, подскажите пожалуйста как создать такую структуру протокола, чтобы по коду матча можно было вносить много строк статистических показателей и сводились в единую форму, но это через запрос это я понимаю. По сути протокол_матча, протокол_А, протокол_Б это одна таблица но как это реализовать не понимаю пока. Разделил т.к. в бумажном варианте это разные разделы. Протокол_А учитывает статистику команды А, и соответственно протокол_Б - команды Б. Причем протокол ведется в разрезе по игрокам, в случае если у команды заполнен состав. Спасибо!
Доброго времени суток, подскажите пожалуйста как создать такую структуру протокола, чтобы по коду матча можно было вносить много строк статистических показателей и сводились в единую форму, но это через запрос это я понимаю. По сути протокол_матча, протокол_А, протокол_Б это одна таблица но как это реализовать не понимаю пока. Разделил т.к. в бумажном варианте это разные разделы. Протокол_А учитывает статистику команды А, и соответственно протокол_Б - команды Б. Причем протокол ведется в разрезе по игрокам, в случае если у команды заполнен состав. Спасибо!ASM_0408
Главный принцип успешности хранения данных турнира - как можно более "вертикальная" ориентация данных. Например, результат матча мы привыкли видеть в СМИ "горизонтально": Спартак - Динамо 3:2 и во втором круге та же пара Динамо - Спартак 1:0.
И поначалу в таком же виде пытаемся отобразить это в таблице БД: [vba]
Код
ID матча Команда 1 Команда 2 Голы 1 Голы 2 ---------------------------------------------- 15 Спартак Динамо 3 2 43 Динамо Спартак 1 0
[/vba]
И здесь, по крайней мере, уже неплохо то, что сразу разносим голы по отдельным колонкам (а то некоторые здесь в лоб пытаются заводить одно поле "Счёт" и помещают в него цифры с двоеточием, совершенно не задумываясь о последующих адских усилиях по экстракции цифр по отдельности).
Но далее, когда мы начинаем строить какие-то запросы и вычислять какую-то статистику, то приходим к выводу, что гораздо удобнее было бы хранить данные в другом - вертикальном - виде, по две строки на каждый матч: [vba]
Код
ID матча Позиция Команда Голы ----------------------------------- 15 1 (хозяин) Спартак 3 15 2 (гость) Динамо 2 43 1 (хозяин) Динамо 1 43 2 (гость) Спартак 0
[/vba]
Мысли о вертикальной ориентации справедливы также и по отношению к другим показателям. Я прикинул примерные структуры некоторых таблиц, которые могли бы присутствовать в БД футбольного турнира. Всё это, разумеется, только как один из возможных вариантов. Так сказать, в порядке обмена опытом.
Матчи Матч ID Дата Город Стадион Число зрителей
Команды матчей Матч ID Команда ID Позиция (1/2 или Хозяин/Гость) Голы забитые (строго говоря, если ведется отдельная таблица голов, то надо по ней и суммировать в запросе)
Голы матчей Матч ID Команда ID Гол (номер п/п среди голов данной команды внутри матча) Минута матча
Авторы голов и передач Матч ID Команда ID Гол (номер п/п среди голов данной команды внутри матча) Касание (1 - сам гол, 2 - посл.передача, 3 - пред.передача, и т.д. если надо) Игрок - автор касания Команда игрока (при автоголах может не совпадать с Команда ID)
Наказания игроков Матч ID Команда ID Игрок Наказание (номер п/п среди наказаний данного игрока внутри матча) Тип наказания (предупрежд., удаление) Минута матча
Др. показатели матчей Матч ID Команда ID (если пусто, то ко всему матчу в целом) Показатель ID (Количество угловых; % владения мячом и т.п.) Значение показателя
Др. показатели игроков Матч ID Команда ID Игрок Показатель ID (Пробег в км; Незабитые пенальти; Отраженные пенальти и др.) Значение показателя
И т.д. и т.п.
Главный принцип успешности хранения данных турнира - как можно более "вертикальная" ориентация данных. Например, результат матча мы привыкли видеть в СМИ "горизонтально": Спартак - Динамо 3:2 и во втором круге та же пара Динамо - Спартак 1:0.
И поначалу в таком же виде пытаемся отобразить это в таблице БД: [vba]
Код
ID матча Команда 1 Команда 2 Голы 1 Голы 2 ---------------------------------------------- 15 Спартак Динамо 3 2 43 Динамо Спартак 1 0
[/vba]
И здесь, по крайней мере, уже неплохо то, что сразу разносим голы по отдельным колонкам (а то некоторые здесь в лоб пытаются заводить одно поле "Счёт" и помещают в него цифры с двоеточием, совершенно не задумываясь о последующих адских усилиях по экстракции цифр по отдельности).
Но далее, когда мы начинаем строить какие-то запросы и вычислять какую-то статистику, то приходим к выводу, что гораздо удобнее было бы хранить данные в другом - вертикальном - виде, по две строки на каждый матч: [vba]
Код
ID матча Позиция Команда Голы ----------------------------------- 15 1 (хозяин) Спартак 3 15 2 (гость) Динамо 2 43 1 (хозяин) Динамо 1 43 2 (гость) Спартак 0
[/vba]
Мысли о вертикальной ориентации справедливы также и по отношению к другим показателям. Я прикинул примерные структуры некоторых таблиц, которые могли бы присутствовать в БД футбольного турнира. Всё это, разумеется, только как один из возможных вариантов. Так сказать, в порядке обмена опытом.
Матчи Матч ID Дата Город Стадион Число зрителей
Команды матчей Матч ID Команда ID Позиция (1/2 или Хозяин/Гость) Голы забитые (строго говоря, если ведется отдельная таблица голов, то надо по ней и суммировать в запросе)
Голы матчей Матч ID Команда ID Гол (номер п/п среди голов данной команды внутри матча) Минута матча
Авторы голов и передач Матч ID Команда ID Гол (номер п/п среди голов данной команды внутри матча) Касание (1 - сам гол, 2 - посл.передача, 3 - пред.передача, и т.д. если надо) Игрок - автор касания Команда игрока (при автоголах может не совпадать с Команда ID)
Наказания игроков Матч ID Команда ID Игрок Наказание (номер п/п среди наказаний данного игрока внутри матча) Тип наказания (предупрежд., удаление) Минута матча
Др. показатели матчей Матч ID Команда ID (если пусто, то ко всему матчу в целом) Показатель ID (Количество угловых; % владения мячом и т.п.) Значение показателя
Др. показатели игроков Матч ID Команда ID Игрок Показатель ID (Пробег в км; Незабитые пенальти; Отраженные пенальти и др.) Значение показателя
Благодарю, так как самостоятельно изучаю аксесс, ваши примеры со структурой дали мне больше понимания. Я пытался построить структуру исходя из сайта хоккейной статистики р-хоккей. Из ваших примеров понял где совершал ошибки.
Благодарю, так как самостоятельно изучаю аксесс, ваши примеры со структурой дали мне больше понимания. Я пытался построить структуру исходя из сайта хоккейной статистики р-хоккей. Из ваших примеров понял где совершал ошибки.ASM_0408