SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.07.2008 00:39:13

talman
Участник
Зарегистрирован: 03.07.2008
Сообщений: 8

Помогите определиться со структурой таблиц

Имеется объект, который характеризуют множество параметров (возможное значение может быть больше 100). Параметры сохраняются в одном поле, разделенные запятой (3,5,6,19...). Необходимо сделать выборку объектов, у которых имеется нужный параметр в этом поле.

Тоже самое другими словами: есть деталь автомобиля (объект), она может принадлежать нескольким маркам. Идентификаторы этих марок перечислены в поле через запятую. Необходимо выбрать деталь, которая принадлежит, к примеру, марке1 или марке18.

Направьте, пожалуйста на верный путь. Как сделать эффективным поиск, как изменить структуру таблиц, в какую сторону смотреть?

Спасибо.

Неактивен

 

#2 03.07.2008 00:48:28

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Помогите определиться со структурой таблиц

Для ускорения поиска, нормализуйте базу данных. В одной таблице храните детали, в другой - марки автомобилей, в третьей связь между деталями и марками, то есть по одной записи для каждой пары (деталь, марка).


CREATE TABLE parts (id int not null auto_increment, name varchar(100), PRIMARY KEY(id));
CREATE TABLE models (id int not null auto_increment, name varchar(100), PRIMARY KEY(id));
CREATE TABLE parts_models (partid int, modelid int, KEY(paritd), KEY(modelid));
 

Неактивен

 

#3 03.07.2008 00:59:37

talman
Участник
Зарегистрирован: 03.07.2008
Сообщений: 8

Re: Помогите определиться со структурой таблиц

Уважаемый администратор, большое спасибо за быстрый ответ.

Я правильно, понимаю, что в этом случае при добавлении детали, которая относится, к примеру, к 30 маркам, необходимо занести в таблицу "parts_models" тридцать записей? Если да, то какое количество записей я могу занести в таблицу одним запросом? Больше ста возможно? Или лучше использовать несколько запросов?

Еще раз спасибо.

Отредактированно talman (03.07.2008 01:03:55)

Неактивен

 

#4 03.07.2008 01:14:50

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Помогите определиться со структурой таблиц

Хоть тысячу. Лимитом здесь будет общая длина запроса, которая у каждого сервера своя (по умолчанию кажется 1Мб)...

Вставлять так

Код:

INSERT INTO parts_to_models 
  (partid, modelid)
VALUES 
  (5,1),
  (5,2),
  (5,30),

  .....

  (5,1000)

Отредактированно Shopen (03.07.2008 01:16:01)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson