=> комплектация => пакет опций => автомобиль
Подскажите, правильно организована такая структура БД, если я к автомобилю (car) кроме option_package_id добавлю еще equipment_id, modification_id, и model_id? Чтобы проще было обращаться к таблицам и не делать кучу join'ов (так сказать, денормализация) или и без этого всё будет быстро работать? Заранее благодарен
ну ты попробуй и скажешь, все зависит от задачи. я у себе делал такие дополнительные поля. потому что мне прямая связь была нужна, а не через что то
Посредника сделай, а не прям в таблицу с авто А там смотри есть ли смысл Все-равно джойны будешь делать
До меня такую схему выстроили: ° авто °° марка °° класс °° модель °° комплектация Недавно переделал выгрузку на авто.ру, где структура следующая: ° марка °° модель °°° модификация Таблица с авто заполняется непосредственно из 1С. Кроном прогоняю в поисках "сопоставлений" и сохраняю результат в отдельную таблицу. Её структура: ° марка ° класс ° модель ° авто.ру марка ° авто.ру модель ° авто.ру модификация ° авто.ру комплектация В модели авто релейшены на каждый тип. Например: public function autoru() { return $this->hasOne(App\Compare::class) ->where('mark', $this->mark) ->where('class_id', $this->class_id) ->where('model', $this->model); } // $car->autoru->modification // $car->autoru->model
Обсуждают сегодня