В очередной раз посетили мысли на эту тему. Отказываться от идеи не собираюсь, а реализация рано или поздно случится. В этом проекте надо либо иметь много денег, чтобы платить программистам, либо встретить грамотного энтузиаста, готового заниматься этим в свободное время радио идеи.
Одна и та же трасса может быть в нескольких вариантах. Более того, на одном и том же месте могут быть принципиально разные варианты трасс, как, например, в случае с Кялами, когда трассу перестроили до неузнаваемости (если не ошибаюсь, даже 2 раза), но каждый раз использовали участки предыдущего варианта. Или, насколько я понимаю, на соверменном "Заксенринге" использована старая стартовая прямая. Или после закрытия городской трассы в Уоткинс-Глене несколько лет гонки проводились по дорогам в полях, а потом ровно на этом самом месте была построена современная трасса с совершенно новым профилем.
Поэтому в справочнике трасс на первом уровне будет уникальная совокупность местоположения и базового профиля. Каждой такой записи будут соответствовать все возможные варианты и модификации, идентифицируемые по длине круга. Соответственно, когда мы будем заполнять базу данных, для каждой гонки нужно знать длину круга, чтобы привязать её к варианту трассы из справочника.
Автомобили. Не всегда в первоисточниках содержится полная информация. Если совершенно точно известно, что гонщик выступал на "Мазерати-250Ф" с таким-то номером шасси и таким-то номером двигателя, то в справочнике можно смело выбирать именно этот вариант. То есть на самом глубоком уровне автомобили должны идентифицироваться по номеру шасси плюс номер двигателя. Уровнем выше - только номер шасси, ещё выше - модель. И если написано, что гонщик выступал на "Мазерати" без указания каких-либо подробностей, выбираем просто эту марку.
Если позже находятся какие-то подробности, и можно конкретизировать сначала модель, потом - шасси, то должна быть возможность не только перепривязать запись для участника соревнования к более конкретной записи в справочнике автомобилей, но и найти схожие варианты и перепривязать и их. Я имею в виду, что если, например, нам встретился гонщик Джонсон, выступавший на "Мазерати", а потом мы нашли номер шасси, но нужно привязать этот номер ко всем выступлениям Джонсона.
Я думаю, что выше я написал не совсем корректно. Получается, на первом уровне (самом общем) будет справочник марок, на втором - моделей, на третьем - шасси, на четвёртом - комбинаций шасси + двигатель. Я так понимаю, заполняя базу данных, нельзя в поле "Автомобиль" помещать значения из разных справочников. То есть, если мы знаем максимум информации, то пометстить данные из справочника с шасси и двигателем, а если знаем только марку - данные из справочника марок. Поэтому в справочнике 4 уровня помимо комбинаций "шасси + двигатель" будут три записи общего порядка: марка, модель и шасси.