"Аксессовский" файл у меня остался, его можно дорабатывать в любое время.
Либо я не умею объяснять (а это очень возможно, учитывая то, сколько мне нервов пришлось потратить на упрощенной истории), либо подход действительно настолько революционный, что людям сложно перестроить мышление в нужном направлении, но я вот даже не знаю, с чего начать. Мне кажется, я уже миллион раз об этом говорил, поэтому нахожусь в некоторой растерянности.
Суть в том, чтобы получить универсальную БД для любого типа автомотоспортивных мероприятий. Я не проводил глубокий анализ всех возможных варинтов, но с теми, с которыми я часто имею дело в своих интересах, существующие базы данных в силу своей архитектуры оптимально справиться не смогут, насколько я могу судить.
Например, клубные соревнования в Гудвуде. Каждое состоит из нескольких гонок. Некоторые автомобили стартуют в нескольких гонках за день под одним и тем же номером. Если следовать традиционной схеме, которой, как мне кажется, придерживаются создатели всех БД, то обязательно должно быть деление на категории, классы и серии. Либо на первом уровне, либо на втором. То есть сначала ты должен выбрать категорию, потом тебе открывается список лет или сразу список гонок. Либо ты заходишь в год, потом выбираешь категорию (класс, серию), и потом вываливается список гонок.
При этом каждый заезд - это отдельное мероприятие. Представим, что некий спортивный "Лотос" под номером 12 стартовал в трёх гонках в Гудвуде: в гандикапе, в заезде для спортивных автомобилей до 1,5 литров и в гонке свободной формулы. Для него в базе данных будут три одинаковых записи. Автомобиль один, гонщик один, а записи три. Это неэффективно. Как оптимизировать? Сделать одну общую запись на всё соревнование, к которой привязывать конкретные заезды.
Другой пример. В соответствии с современным пониманием подразумевается, что вот есть гонка, и у ней её есть разные предварительные заезды. Поэтому надо вспомнить максимальное количество возможных видов заездов и расположить всю эту линейку в таблице результатов. Будет очень много столбцов. Даже если это домонстрационный заезд, надо тоже предусмотреть такую колонку. Поэтому на всю БД может быть с десяток таких заездов, но соответствующее поле будет болтаться во всех десятках или сотнях тысячах таблиц. Это неэффективно. Как оптимизировать? Сделать каждый заезд самостоятельной таблицей. Участники в ней будут браться из общего списка для соревнования, и нужны будут пара столбцов для результатов: время (или, допустим, количество пройденных кругов) или причина схода.
В необходимости принять соревнование в качестве второго уровня (после года) я убедился в процессе работы над своим архивом. Когда я, в соответствии с современным взглядом на автогонки, пытался делить гонки на отдельные мероприятия, возникали несоответствия. Например, упрощенная история говорит, что на Пасху в Гудвуде была очень крутая гонка класса формула №1 на приз Гловера. Ну, это же Ф1. Это очень круто. Хорошо, у меня есть папочка для этой гонки. Потоя появляются фотографии с этих же соревнований, но с гонок в других классах. Это же не супер-пупер-Ф1, поэтому ими загрязнять священную папочку мы не будем, а поместим в отдельную. Будут, например, 195х.04.хх_Glover_Trophy и 195х.04.хх_Goodwood_other (ну, условно). Хорошо. Будем считать, что "Приз Гловера" - это главная гонка, а остальные - гонки поддержки. Это искажение, но нам же надо к чему-то привязаться. Потом выясняется, что Майк Хоторн стартовал не только в "Призе Гловера", а ещё в паре гонок. И вот у меня есть портрет Хоторна, сделанный в этот день. Формально его надо поместить в обе папки, потому что неизвестно, к какой гонке отнести. Идиотизм ситуации очевиден. Гонщик был в тот день на трассе и участвовал в программе. Поэтому его присутствие должно быть привязанно ко всей програме, а не к конкретной гонке. Поэтому папочка нужна одна - для соревнования.
Ещё много менее значимых обстоятельств сводятся именно к формату соревнования как второго уровня БД. Это фундаментальный принцип. В нём есть есть нерешённые вопросы. Например, как быть с многодневным форматом? Два варианта: либо на втором уровне - соревнование с границаи дат, на третьем уровне - конкретные дни, на четвёртом - заезды в конкретный день; либо на втором уровне - каждый день, а на третьем - заезды. Второй вариант выглядит менее удачным, потому что в списке соревнований тогда будет не просто ралли "Монте-Карло", а 1 день РМК, 2 день РМК и т.д. Это не есть правильно.
Итак, фундаментальная особенность - это соревнование в качестве второго уровня БД.