Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
оптимизация хранения и поиска (Александр) 25/01/2008 - 18:23:55
      Re: оптимизация хранения и поиска (Александр) 25/01/2008 - 18:49:48
      Re: оптимизация хранения и поиска (Ol) 30/01/2008 - 12:29:29

> Original message text:
> From: Александр - 25/01/2008 - 18:23:55
> Subject:оптимизация хранения и поиска
> -----------------
> Всем доброго времени суток. Есть такая задача (этакий интерент магазин):
> Есть список товаров одного типа. Каждый товар может иметь несколько размеров и поэтому несколько цен. Наример:
> Парус для виндесрфинга:
>
> Размер (м2) Цена (у.е.)
> Парус1
> 5 300
> 7 500
> 10 850
> Парус2
> 6.5 380
> 6.8 400
> 7.3 530
>
> и.т.д.
>
> Нужно выбрать парус размером от 5 до 7 метров квадратных и ценой от 300 до 500 у.е. Вопрос в том, как оптимальнее хранить и выбирать данные (при том, что колличество размеров и цен соответсвенно одной единицы может быть и больше. например 10 - 15 размеров). Мне пришли следующие идеи для решения:
>
> 1. Создавать несколько полей размеров/цен (например size1 .. size10, price1 .. price10) и поиск делать с учётом каждого поля, например (сразу предупреждаю, я чайник, так что чур помидорами не бросаться :) )
> SELECT * FROM list
> WHERE ((price1 >=300 AND price1 <=500) AND (size1 >= 5 AND size1 <= 7) OR
> ((price2 >=300 AND price2 <=500) AND (size2 >= 5 AND size2 <= 7) OR
> ((price3 >=300 AND price3 <=500) AND (size3 >= 5 AND size3 <= 7)
>
> Получается достаточно ёмкая таблица и длинное условие выборки (особенно, если кол-во размеров заходит за 10)
>
> 2. Точно не уверен в возможности реализации этого метода, но всё же:
> Хранить все размеры одного товара в одной ячейке (строке, или ещё как-нибудь) и в отдельной все цены. Потом средствами MySQL эти строки как-то разбирать и потом делать сравнения. Менее ёмкая таблица выходит, но зато сама программа (условие) выборки может усложниться.
>
> Может кто-нибудь посоветовать чего? Буду очень благодарен за любую помощь!
>


From: Ol - 30/01/2008 - 12:29:29
Subject:оптимизация хранения и поиска
-----------------
...но размеры таблица вырастут...

Лучше разделить на 2 таблицы: первая(главная) список названий товаров (парус1, парус2 и т.д.), вторая(подчинённая) - размер, цена. При этом не будет избыточности информации. Про размер таблиц беспкоится не следует, т.к. это относится к справочнику товаров. Можно "забеспокоится" о размере для таблиц приёма\продажи товаров, но и здесь скорее всего всё "нормально": т.к. магазин узкоспециализированный, в отличие от какого-нибудь гипермаркета.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
32903



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |