Здравствуйте, дали такое задание:
Разработать структуру данных автопарка, в котором машины делятся по типу, грузовые, автобусы, самосвалы и др. У каждой машины есть свои атрибуты (год выпуска, марка, модель, макс скорость и т.д.)
Какие именно атрибуты - это зависит от того какой это тип машины, к примеру, если самосвал - тоннаж, если автобус - количество мест.
Самое главное, что тип машины и его атрибуты должны администрироваться, т.е. администратор автопарка
может добавлять свои атрибуты редактировать старые и удалять в зависимости от того какой тип машины(грузовик, автобус, легковая). Так же чтоб была возможность поиска машины по атрибутам! Как правильно сделать структуру?
_______________________________________________________________________
Я сделал такую структуру базы данных
и заполнил ее соответственно такими значениями
и сделал запрос на поиск
SELECT *
FROM `attr_сar` ac
inner join `cars` c on ac.id_car = c.id
inner join `attr` a on ac.id_attr = a.id
WHERE
/* условие для категории */
(a.category_id = c.category and c.category = 1) and
/* условие для года выпуска автомобиля*/
(a.id = '4' and ac.val >= 2004 AND ai <= 2008) and
/* условие для пробега автомобиля*/
(a.id = '3' and ac.val >= 10000 AND ai <= 90000)
Данный запрос не работает. Я думаю из за того что:
1) не правильно сделал структуру БД
2) из за того что в запросе мы имеем конструкцию типа такого select * from ... where id=3 and id=4
конструкция через IN не подойдет т.к. он работает с условием OR а мне надо конкретно автомобили с пробегом от "10000" до "90000" и годом выпуска от "2004" до "2008".
Причем запрос на поиск будет абсолютно разный всегда, это я сейчас ищу по 2 параметрам, а будет 10+.
Помогите пожалуйста