|
|
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
Коллеги, у кого какие мысли есть, как удобнее сделать. Делаю таблицу со спортивными результатами по теннису, посоветуйте как организовать хранение самих результатов. По правилам тенниса, максимальное количество сетов - 5. Так вот, у меня есть два варианта: 1. Одно поле - один сет. Получается, в каждом поле результат представляется в виде "6:4" либо NULL. Соответственно таблица принимает такой вид: ID | Player_1 | Player_2 | Set1 | Set2 | Set3 | Set4 | Set5 2. Одно поле - результат одного игрока в сете. Получается десять полей. Вид таблицы получаем: ID | Player_1 | Player_2 | Set1_1 | Set1_2 | Set2_1 | Set2_2 | Set3_1 | Set3_2 | Set4_1 | Set4_2 | Set5_1 | Set5_2 С точки зрения дальнейшей обработки результата матчей какой вариант будет оптимальным? Или у кого есть свои мысли на этот счет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 17:27 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
Таблица игроков (Игрок) Таблица Игр (Игра, Игрок1, Игрок2) Таблица Сетов (Игра, НомерСета от 1 до 5, РезультатИгрока1, РезультатИгрока2) т.е. на одну игру - пять записей с результатами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 17:51 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
Программист-ЛюбительТаблица игроков (Игрок) Таблица Игр (Игра, Игрок1, Игрок2) Таблица Сетов (Игра, НомерСета от 1 до 5, РезультатИгрока1, РезультатИгрока2) т.е. на одну игру - пять записей с результатами Про таблицу сетов мелькала мысль... Но что-то не пытался ее развить. Спасибо за совет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 18:00 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
ScarferNVС точки зрения дальнейшей обработки результата матчей какой вариант будет оптимальным? Или у кого есть свои мысли на этот счет? Типичный вариант предложил Программист-Любитель. Не стоит думать, что этот вариант - опитимальный. Для определения оптимальности нужны требования/ограничения и критерии оптимальности :). ScarferNV, ваш первый вариант тоже имеет право на жизнь, и нетрудно придумать задачу, где именно он и будет оптимальным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 18:13 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
ScarferNV С точки зрения дальнейшей обработки результата матчей какой вариант будет оптимальным? Или у кого есть свои мысли на этот счет? Оба неверные, оба нарушение 1НФ. Забудь про ограничение на 5 сетов пока, оно в РБД бесполезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 08:11 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
Программист-ЛюбительТаблица Сетов (Игра, НомерСета от 1 до 5, РезультатИгрока1, Имеет ровно тот же недостаток, что и модели автора и даже хуже. Прикиньте запрос "определить, сколько сетов игрок Чесноков выиграл со счётом 14-12". ScarferNVС точки зрения дальнейшей обработки результата матчей какой вариант будет оптимальным? Или у кого есть свои мысли на этот счет? Поскольку задача искусственная, понятие "дальнейшая обработка" не очень осмысленно. Если у этой структуры собираются спрашивать "результаты пятисетовых матчей", оптимальная структура будет одна, если "результаты всех встреч А и Б" - другая. В целом, я бы учёл, что задача dwh-ного стиля, и рекомендовал бы следующую структуру: максимально соответствующие "предметной области" таблицы (то есть турниры, матчи, сеты, геймы итп) - это позволит легко наращивать требования, скажем, ответить на вопрос "при каком судье на линии игрок А выиграл больше всего чужих подач" плюс денормализация на наиболее актуальные выборки, причём, возможно, с симметричным дублированием (то есть на один сет иметь записи "А Б 6 4" и "Б А 4 6". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 10:47 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
Ребята, нет понятий "оптимальная структура" и "неоптимальная структура". Бывают только правильные и неправильные.Хх ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 10:57 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
MasterZivРебята, нет понятий "оптимальная структура" и "неоптимальная структура". Бывают только правильные и неправильные.Хх Поскольку теория РБД не дает критериев оптимальности в общем случае, то бывают более оптимаольные или менее оптимальные. "правильные и неправильные" - звучит как что-то безапеляционное. Даже если кто-то и придумал какие-то правила, это, скорее всего, его какие-то предпочтения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 11:53 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
> у меня есть два варианта Вариантов сильно больше. Ваши плохи тем, что непригодны для сбора статистики и расширения функционала. Раз пятьсот, наверное, здесь это уже написал, в пятьсот первый: читайте правила (в данном случае - тенниса) и регламенты конкретных турниров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 12:03 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
guest_20040621> у меня есть два варианта Вариантов сильно больше. Ваши плохи тем, что непригодны для сбора статистики и расширения функционала. Раз пятьсот, наверное, здесь это уже написал, в пятьсот первый: читайте правила (в данном случае - тенниса) и регламенты конкретных турниров. С правилами тенниса хорошо знаком, регламенты турниров разные, где-то играют до двух побед, где-то до трех. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 16:57 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
Вообще, обработка результатов будет исходить из следующих вопросов к примеру: 1. Сколько игр провели между собой игроки. 2. Сколько определенный игрок провел игр за определенный период, сколько сетов. 3. Сколько игр игрок выиграл с сухим счетом, сколько с сухим счетом проиграл. И так далее. Т.е. подрузомивается подробная статистика игрока, так и очных встреч. Придумал еще такой вариант... Таблица 1: Игрок_1 | Игрок_2 | Игра Таблица 2: Игра | Игрок | Сет | Результат. Только получается, что Таблица 2 будет иметь внушительное количество записей, если собрать статистику хотя бы за три последних года. К Таблица 1, в будещем планируется прикрутить поля: Турнир, Стадия турнира. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 17:09 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
> С правилами тенниса хорошо знаком Я вижу. Одиночные, парные. Женские, мужские. Детские, юношеские, взрослые. Игра, сет, гейм. В сад, юноша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 17:21 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
guest_20040621> С правилами тенниса хорошо знаком Я вижу. Одиночные, парные. Женские, мужские. Детские, юношеские, взрослые. Игра, сет, гейм. В сад, юноша. Уважаемый, и чем же так существенно отличаются правила для одиночных мужских и женских разрядов? Или Вы, Уважаемый, назовете мне турнир в профессиональном теннисе, где играется более пяти сэтов? Если бы вы, Уважаемый, были более внимательным, то парные встречи здесь учитываться не собираются. И очки по геймам тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 17:36 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
> Уважаемый, и чем же так существенно Ещё раз: если вы проектируете базу данных для регистрации результатов соревнований по теннису, вам следует читать правила тенниса и регламенты турниров. Точка. Здесь нечего обсуждать. Если вы проектируете базу данных для каких-то других целей, следует явно их указать. Горбатого лепить не нужно. Мало того, что это дурной тон, это дискредитирует собственно практику ответов на вопросы. В сад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 18:06 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
У программиста-любителя в таблице матчей не хватает поля с результатом матча. Думается мне, что результаты отдельных сетов в матче не так важны, намного важнее знать победителя матча. Конечно при определённой смекалке из таблицы сетов можно определить победителя матча (скорее всего, в теннисе это игрок, выигравший большее количество сетов), но всё ж так думается мне правильнее хранить это в отдельном поле Ещё, конечно как вариант, удобнее хранить информацию о том, сколько сетов требуется до определения победителя, ибо при заведении результатов каждого сета в режиме реального времени непонятен статус матча (закончился матч или нет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 08:30 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
ScarferNVguest_20040621> С правилами тенниса хорошо знаком Я вижу. Одиночные, парные. Женские, мужские. Детские, юношеские, взрослые. Игра, сет, гейм. В сад, юноша. Уважаемый, и чем же так существенно отличаются правила для одиночных мужских и женских разрядов? Или Вы, Уважаемый, назовете мне турнир в профессиональном теннисе, где играется более пяти сэтов? Если бы вы, Уважаемый, были более внимательным, то парные встречи здесь учитываться не собираются. И очки по геймам тоже. Так-то гость обычно делает свои замечания по делу, и особо обижаться на него обычно не стоит. Про парные встречи вообще чушь какая-то у Вас написана... Что значит не собираются? Они не входят в программу каких-то турниров? Проектировать БД надо так, чтоб на завтра при появлении новой необходимости не переделывать структуру БД. Плохой тон проектировать базу для какого-то частного случая однако ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 08:36 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
Mr.FontaineТак-то гость обычно делает свои замечания по делу, и особо обижаться на него обычно не стоит. Про парные встречи вообще чушь какая-то у Вас написана... Что значит не собираются? Они не входят в программу каких-то турниров? Проектировать БД надо так, чтоб на завтра при появлении новой необходимости не переделывать структуру БД. Плохой тон проектировать базу для какого-то частного случая однако В данном случае парные встречи турниров вноситься не будут. БД расчитана только для хранения личных встреч ATP и WTA. Замечание может Гость и сделал, но на своей волне, предварительно не уточняя деталей. Покритиковать любит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 11:47 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
Mr.FontaineУ программиста-любителя в таблице матчей не хватает поля с результатом матча. Думается мне, что результаты отдельных сетов в матче не так важны, намного важнее знать победителя матча. Конечно при определённой смекалке из таблицы сетов можно определить победителя матча (скорее всего, в теннисе это игрок, выигравший большее количество сетов), но всё ж так думается мне правильнее хранить это в отдельном поле Ещё, конечно как вариант, удобнее хранить информацию о том, сколько сетов требуется до определения победителя, ибо при заведении результатов каждого сета в режиме реального времени непонятен статус матча (закончился матч или нет) Думается лучше хранить результаты сетов. Потом уже на программном уровне определять победителя матча, как и другую статистику игрока. А как вам мой последний вариант? Не много переделанный Программиста любителя. Просо думаю, что если хранить игрока в двух полях, то при поиске игрока, где заранее не известно, в каком поле он окажется, алгоритм дальней ших вычислений окажется запутанным, с кейсами, ифами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 11:55 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
ScarferNVТолько получается, что Таблица 2 будет иметь внушительное количество записей, если собрать статистику хотя бы за три последних года. С этим "внушительным количеством записей" легко справится мой ноутбук. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 13:27 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
> БД расчитана только для хранения личных встреч ATP и WTA. Замечание может Гость и сделал, но на своей волне К сожалению, вы не имеете представления о проектировании как системной задаче. Регистрация результатов только ATP и WTA бессмысленна просто потому, что рейтинг теннисистов учитывает, например, и их результаты в турнирах Большого шлема, которые формально независимы от профессиональных ассоциаций. И парный разряд существует в подавляющем большинстве турниров. На вашем месте я бы прекращал тупить. В мире около 300 млн. человек имеют отношение к профессиональному футболу. И нет ни одной базы данных, которая хотя бы в первом приближении адекватно позволяла регистрировать результаты соревнований. Трава зелёная. Кухарка не может управлять государством. Дилетант не может проектировать базы данных. Это нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 15:18 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
guest_20040621> БД расчитана только для хранения личных встреч ATP и WTA. Замечание может Гость и сделал, но на своей волне К сожалению, вы не имеете представления о проектировании как системной задаче. Регистрация результатов только ATP и WTA бессмысленна просто потому, что рейтинг теннисистов учитывает, например, и их результаты в турнирах Большого шлема, которые формально независимы от профессиональных ассоциаций. И парный разряд существует в подавляющем большинстве турниров. На вашем месте я бы прекращал тупить. В мире около 300 млн. человек имеют отношение к профессиональному футболу. И нет ни одной базы данных, которая хотя бы в первом приближении адекватно позволяла регистрировать результаты соревнований. Трава зелёная. Кухарка не может управлять государством. Дилетант не может проектировать базы данных. Это нормально. 1. Игроки которые состоят в рейтингах ATP или WTA учавствую как и в основных сериях ATP\WTA, так и в Челенджерах, турнирах Большого шлема, в финальных турах в конце сезона. Еще раз повторяю, парный разряд всех этих турниров в данном случае не учитывается. Речь идет только о ЛИЧНЫХ встречах в этих турнирах. Я не понимаю ваших претензий в моей осведомленности в мире спорта. 2. Я прошу совета в практическом решении, среди людей, которые имеют богатый опыт в проектировании. Каким-либо профи в проектировании я не назывался. Для этого и существуют подобные форумы, чтобы люди делились опытом. От вас же я не услышал ничего подобного кроме критики моей осведомленности в мире тенниса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 16:14 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
> Я прошу совета в практическом решении Вы и получили практический совет. Между нами, - хороший практический совет. Видите ли, ddl - последний и самый простой этап проектирования. Самая сложная часть - общая концепция. Пока вы не будете видеть вашу базу данных в перспективе следующих пяти лет, говорить о её структуре бессмысленно. Вам, возможно, трудно в это поверить, но вы - типичный представитель задающих здесь вопросы. Не те и не о том. Никаких проблем, нравится ходить по граблям - ходите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 18:16 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
ScarferNVMr.FontaineУ программиста-любителя в таблице матчей не хватает поля с результатом матча. Думается мне, что результаты отдельных сетов в матче не так важны, намного важнее знать победителя матча. Конечно при определённой смекалке из таблицы сетов можно определить победителя матча (скорее всего, в теннисе это игрок, выигравший большее количество сетов), но всё ж так думается мне правильнее хранить это в отдельном поле Ещё, конечно как вариант, удобнее хранить информацию о том, сколько сетов требуется до определения победителя, ибо при заведении результатов каждого сета в режиме реального времени непонятен статус матча (закончился матч или нет) Думается лучше хранить результаты сетов. Потом уже на программном уровне определять победителя матча, как и другую статистику игрока. А как вам мой последний вариант? Не много переделанный Программиста любителя. Я высказываю свою точку зрения: насколько я понимаю процесс, основная цель любой спортивной игры - определение победителя. Как победитель стал победителем это уже детали матча, которые иногда не требуют показа. То есть в соответствии с принципами проведения игр надо ОБЯЗАТЕЛЬНО знать КТО победил, а вот КАК он победил, знать не обязательно, а только ДОПУСКАЕТСЯ. Подумайте над этим на досуге. Потому обычно, результаты сетов, таймов, периодов, авторы поражения целей (в разных видах спорта поражают разные цели) - это уже дополнительная информация, показывающая, как был определён победитель. А про последний вариант таблиц, ну что сказать... Первую таблицу обсуждать не будем, раз там не требуется хранить результат игры, то можно оставить и так как есть, но я бы, учитывая, что есть планы получать информацию за определённый период (в моём понимании речь идёт о периоде времени) добавил бы поле с датой матча, но опять же, это на ваш вкус, может тоже решите, что её можно определять программно. Вторая таблица, получается будет дублировать записи по одному сету, что собственно является денормализацией, но это мелочь, на которую можно и не обращать внимание, бо мне видится более глобальная проблема в том варианте: информацию о матче надо будет получать довольно нетривиальными способами Например, подумайте как из информации о матче таблица "Игроки" id;ФИО1Петров2Иванов Таблица "Матчи" id;Игрок1Игрок2112 Таблица "Сеты" Игра_id;Игрок_idСетРезультат111"6:4"112"4:6"121"0:6"122"6:0"131"6:4"132"4:6" получить строку "Иванов-Петров 6:4,0:6,6:4" и определить победителя этого матча, имея в столбце результата строковое значение Вы считаете сложным выбрать информацию о игроке из двух полей (причём тут кейсы и ифы вообще не понятно достаточно просто в SQL-запросе сделать UNION), и в это же время не видите сложности в программной обработке набора строк, чтобы определить победителя. Думается мне, что ваш вариант определения победителя, намного сложнее выбора информации о игроке из двух полей однако. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 07:17 |
|
||
|
Прошу совета в проетировании таблицы
|
|||
|---|---|---|---|
|
#18+
ScarferNV, Жуть. А если потом потребуется другой вид спорта (несовместимый по частям матча, футбол хотя бы) - будете, как BWin, под каждый вид спорта свою схему БД делать? Цель данной разработки озвучьте, что ли. Ибо если это курсовая, то еще окей, а так - есть же Betradar, который все уже написал до вас... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 07:29 |
|
||
|
|

start [/forum/topic.php?fid=32&tid=1540943]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 492ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...