Новости
Документация
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



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 эти строки как-то разбирать и потом делать сравнения. Менее ёмкая таблица выходит, но зато сама программа (условие) выборки может усложниться.

Может кто-нибудь посоветовать чего? Буду очень благодарен за любую помощь!


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

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

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



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