Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Подскажите наилучший способ хранения инфы


Автор: OracleH2 8.1.2006, 23:43
Ребят, пишу в первый раз, так что извиняйте, если что не так спрошу.

Есть у меня одна проблема. Пишу сайт под заказ (сразу скажу, что заказали движок для интим-сайта... ну то есть проститутки и т.п.)

Суть проблемы:
Есть список возможных услуг (вывожу чекбоксами), каждая девушка вольна для себя выбирать те, которые оказывает.
По идее можно было бы все эти услуги запихать в массив как есть... но тут проблема, очень нужен быстрый поиск по услугам.

Я дошел до такого гемора, что получал в итоге выбранных услуг битное число, конвертил в десятичное и записывал его в таком виде... то есть на чекбоксах читал единицу или нуль, записывал итоговое значение типа 1000101110 и конвертил в десятичное... поиск хоть и побыстрее, но все равно заказчикам не нравится... Поэтому решил поспрашивать на форумах, может отсоветуете как еще можно поступить...
PS: вариант хранения каждой услуги в своей ячейке не предлагать smile

Заранее спасибо.

Автор: Black 8.1.2006, 23:53
Цитата(OracleH2 @ 8.1.2006, 23:43 Найти цитируемый пост)

вариант хранения каждой услуги в своей ячейке не предлагать


почему?

Ведь это и будет самый простой и быстрый способ сортировки по оказываемым услугам.

1 - услуга оказывается
0 - услуга отсутствует

Сортируй и выбирай теперь какие хочешь услуги в любом сочетании.

Код

SELECT lala FROM tbl WHERE usluga1=0 and usluga2=1 LIMIT 50


и т.д.

Автор: HalkaR 9.1.2006, 00:27
Скорее всего нужно будет именно хранить каждую услугу в своей ячейке, ведь может быть отбор по услугам. Или нет?
Уточните - какие варианты вывода информации есть? Какие виды поиска?

Автор: Mal Hack 9.1.2006, 01:56
Делать множество. Единственный разумный выход.
Со множествами можно работать через IN, что очень хорошо для поиска.

Автор: chief39 10.1.2006, 11:09
Самое логичное и разумное - список услуг, список девушек, связка девушка-услуга. То есть в ОТДЕЛЬНЫХ ячейках.
Что-то здесь не так.... Ну пусть у тебя(в смысле у них) несколько тысяч(!) девушек.
Не может быть чтоб настолько тупила база, чтоб клиенты жаловались на низкое быстродействие smile Да и сомневаюсь что несколько тысяч будет. Ты проверял быстродействие выборок? Или замерял общее время формирование странички с данными? Может web тормозит?
PS. Везёт же людям с предметной областью... прям приятно писать smile

Автор: Akina 10.1.2006, 12:05
Связь девушка-услуга - это связь типа многие-ко-многим. Тут быстрее чем связывающая таблица ничего не придумать...

Автор: Bose 13.1.2006, 17:47
Цитата(OracleH2 @ 8.1.2006, 23:43 Найти цитируемый пост)

дошел до такого гемора, что получал в итоге выбранных услуг битное число, конвертил в десятичное и записывал его в таком виде... то есть на чекбоксах читал единицу или нуль, записывал итоговое значение типа 1000101110 и конвертил в десятичное... поиск хоть и побыстрее, но все равно заказчикам не нравится...
PS: вариант хранения каждой услуги в своей ячейке не предлагать

в MySQL именно для этого есть тип столбца SET(множество), работает точно также как ты и описал. Выборку можно производить импользуя IN или бинарные операции(И/ИЛИ). А вообще, правее всех Akina. Самым лучшим вариантом будет хранить список услуг в одной таблице, список (не)девушек в другой, а для связки создать третью. Это и быстрее будет и универсальнее, ибо заказчики смогут сами добавлять новые услуги, и для этого не придётся изменять структуру базы данных. smile

Автор: batigoal 15.1.2006, 00:12
Цитата(chief39 @ 10.1.2006, 12:09 Найти цитируемый пост)

PS. Везёт же людям с предметной областью... прям приятно писать smile

А ты пробовал? Я сталкивался немного... скорее - противно.

Автор: chief39 15.1.2006, 12:02
Цитата(Lamer George @ 15.1.2006, 00:12 Найти цитируемый пост)

А ты пробовал? Я сталкивался немного... скорее - противно.


smile не сталкивался smile и услугами не пользовался smile но везде стараюсь находить приятное. изюминку тысызыть ;) smile

ЗЫ: Что-то форум периодически глючит. Некоторые разделы. По очереди. Вместо красивого зелёненького - всё белое, кнопочки в синих рамочках. Разделителей между постами и проч. - нету. (Забыл топик куда баги найденые постить smile )
Под виндой ФФокс 1.0 вот только вчера начал глюкавить.
Под линухом ФФ - последнюю неделю. Только Konqueror - наман. Вчера. Был. IE - нормально вроде.
ЗЗЫ: Пардон за пост, полный оффтопа

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)