Имеются данные:
10 трасс, для каждой трассы имеются поля -
"имя пилота"
"команда"
"квалификационное время"
"гоночное время на мягкой резине"
"гоночное время на жесткой резине"
"лига"
Для каждого "пилота" создается записи в базе по этим 10 трассам.
Что-то никак не соображу как поступить более оптимально, в MySQL не создать "многомерной" таблицы (если я не ошибаюсь) следовательно придется создать 10 таблиц (отдельно для каждой трассы) где общим полем будет имя пилота?
Пожалуйста посоветуйте разумное решение, так как в мою темную голову светлые мысли никак не идут,(в Гугле не нашел решения)

Спустя 1 час, 41 минута, 31 секунда (26.04.2012 - 01:00) FatCat написал(а):
Добавить поле "номер трассы", например trace_n
Тогда запросом
В плане оптимизации тут может быть полезно сделать две таблицы.
Например, если отдельно будет вестись учет пилотов, и будет много обмена информации по пилотам без привязки к трассам - тогда отдельно сделать базу пилотов.
Таблиц может быть и три. Например, если отдельно будут учитываться гонки/заезды, то сделать таблицу гонок, а пилотов и трассы джойнить из своих таблиц.
Тогда запросом
SELECT FROM table ... WHERE trace_n = 1получим всех пилотов по этой трассе, а при необходимости наоборот, можно будет получить выборку по одному пилоту для всех трасс.
В плане оптимизации тут может быть полезно сделать две таблицы.
Например, если отдельно будет вестись учет пилотов, и будет много обмена информации по пилотам без привязки к трассам - тогда отдельно сделать базу пилотов.
Таблиц может быть и три. Например, если отдельно будут учитываться гонки/заезды, то сделать таблицу гонок, а пилотов и трассы джойнить из своих таблиц.
Спустя 17 часов, 36 минут, 34 секунды (26.04.2012 - 18:36) Adamant написал(а):
Вероятно мы не поняли друг друга. :(
Для большей наглядности объясню на аналогии с вложенным массивом, структура базы выглядит примерно так:
Т.е. мне нужно создать "вложенную" таблицу в базе. MySQL поддерживает только "плоские" таблицы.
Как я вижу решение, нужно создать для каждой трассы отдельную таблицу, других вариантов я не нахожу.
Для большей наглядности объясню на аналогии с вложенным массивом, структура базы выглядит примерно так:
$tabl = array(
// первый трек
'track_1' => array(
'pilot_1' => array(
'liga' => '1',
'qual' => '1:25,765',
'race_s' => '1:28,765',
'race_h' => '1:29,555',
),
'pilot_2' => array(
'liga' => '2',
'qual' => '1:25,765',
'race_s' => '1:28,765',
'race_h' => '1:29,555',
),
),
// второй трек
'track_2' => array(
'pilot_1' => array(
'liga' => '1',
'qual' => '1:25,765',
'race_s' => '1:28,765',
'race_h' => '1:29,555',
),
'pilot_2' => array(
'liga' => '1',
'qual' => '1:25,765',
'race_s' => '1:28,765',
'race_h' => '1:29,555',
),
'pilot_3' => array(
'liga' => '3',
'qual' => '1:25,765',
'race_s' => '1:28,765',
'race_h' => '1:29,555',
),
),
// третий трек
'track_3' => array(
'pilot_1' => array(
'liga' => '1',
'qual' => '1:25,765',
'race_s' => '1:28,765',
'race_h' => '1:29,555',
),
)
);
Т.е. мне нужно создать "вложенную" таблицу в базе. MySQL поддерживает только "плоские" таблицы.
Как я вижу решение, нужно создать для каждой трассы отдельную таблицу, других вариантов я не нахожу.
Спустя 48 минут, 14 секунд (26.04.2012 - 19:24) Adamant написал(а):
Решил выкрутиться следующим образом. К имени пилота добавлять префикс с названием трека ( Monaco_Vettel ).
Спасибо вопрос снят
Спасибо вопрос снят
Спустя 14 часов, 43 минуты, 35 секунд (27.04.2012 - 10:08) vital написал(а):
Делаете таблицу с трассами.
Таблицу с гонщиками.
Таблицу с результатами.
И связываете последнюю с 2мя первыми по ID.
Таблицу с гонщиками.
Таблицу с результатами.
И связываете последнюю с 2мя первыми по ID.