EvgIq, я, на самом деле, тоже не очень понимаю. Просто, пока, иду в сторону нормальных форм, а там будет видно.
Иерархия такая:
- Бренд (Ford)
- Модель (Focus)
- Поколение (III)
- Модификация (опишу ниже, тут с иерархия ломается)
- VIN (опишу ниже)
Модификация - это сочетание Двигателя, Коробки, Кузова, Привода, Комплектации и некого Кода, привязывающего все это хозяйство к некоторому временному промежутку (примерно, раз в квартал набор опций меняется, что-то улучшается, что-то добавляется, итд).
Кузов и Комплектацию, кажется можно перенести в иерархию (хотя, может, и нельзя, забыл почему я их сюда определил). А, вот, Двигатель, Коробка и Привод могут быть одинаковыми для разных Моделей и, даже, разных Брендов, так что в иерархии им не место.
Вот, к этой Модификации и пристегиваются все остальные Опции (с которыми, на самом деле, все тоже не очень просто).
По хорошему, из Опций еще надо вытащить Цвет (он часто нужен).
Таких Модификаций может набраться достаточно много если автомобиль выпускается достаточно долго. И риск 1 - не поместиться тут в 564 детей (понятно, что меньше уровней - больше дочерних элементов, и риск не большой).
С VIN-номером - получается еще хуже, в не содержится VIS-номер (10-17 символы). Два из них - код года выпуска и код завода, остальные 6 - серийный номер, причем первые 2 его символа могут быть не только числами, но и буквами (почти полный англ. алфавит).
Получается, что 7-8-зачное число - потенциально возможное кол-во записей в VIN. Понятно, что они распределены по глобусу, и в рамках одного салона просесть маловероятно, но в рамках РФ - уже вполне реально (предполагается, что у нас в БД кроме автомобилей, которые сейчас в продаже, так же есть знания об автомобилях клиентов, которые просто порой приезжают на плановое ТО, ремонт, мойку, или, в крайнем случае, испить чашечку кофе).
Новый (в пути, на складе, забронирован) / подержанный (на складе, забронирован) / автомобиль клиента (приехал на ТО, итд) - это просто статус, который не является константой. Этот статус меняется с течением времени, а история его изменений нужна, так что это все вне этой модели.
Может, я не правильно понял Ваш совет, и с ним все нормально "взлетает"?