Задавайте вопросы, мы ответим
Вы не зашли.
Имеется объект, который характеризуют множество параметров (возможное значение может быть больше 100). Параметры сохраняются в одном поле, разделенные запятой (3,5,6,19...). Необходимо сделать выборку объектов, у которых имеется нужный параметр в этом поле.
Тоже самое другими словами: есть деталь автомобиля (объект), она может принадлежать нескольким маркам. Идентификаторы этих марок перечислены в поле через запятую. Необходимо выбрать деталь, которая принадлежит, к примеру, марке1 или марке18.
Направьте, пожалуйста на верный путь. Как сделать эффективным поиск, как изменить структуру таблиц, в какую сторону смотреть?
Спасибо.
Неактивен
Для ускорения поиска, нормализуйте базу данных. В одной таблице храните детали, в другой - марки автомобилей, в третьей связь между деталями и марками, то есть по одной записи для каждой пары (деталь, марка).
Неактивен
Уважаемый администратор, большое спасибо за быстрый ответ.
Я правильно, понимаю, что в этом случае при добавлении детали, которая относится, к примеру, к 30 маркам, необходимо занести в таблицу "parts_models" тридцать записей? Если да, то какое количество записей я могу занести в таблицу одним запросом? Больше ста возможно? Или лучше использовать несколько запросов?
Еще раз спасибо.
Отредактированно talman (03.07.2008 01:03:55)
Неактивен
Хоть тысячу. Лимитом здесь будет общая длина запроса, которая у каждого сервера своя (по умолчанию кажется 1Мб)...
Вставлять так
INSERT INTO parts_to_models (partid, modelid) VALUES (5,1), (5,2), (5,30), ..... (5,1000)
Отредактированно Shopen (03.07.2008 01:16:01)
Неактивен