| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > Подскажите наилучший способ хранения инфы |
| Автор: OracleH2 8.1.2006, 23:43 |
| Ребят, пишу в первый раз, так что извиняйте, если что не так спрошу. Есть у меня одна проблема. Пишу сайт под заказ (сразу скажу, что заказали движок для интим-сайта... ну то есть проститутки и т.п.) Суть проблемы: Есть список возможных услуг (вывожу чекбоксами), каждая девушка вольна для себя выбирать те, которые оказывает. По идее можно было бы все эти услуги запихать в массив как есть... но тут проблема, очень нужен быстрый поиск по услугам. Я дошел до такого гемора, что получал в итоге выбранных услуг битное число, конвертил в десятичное и записывал его в таком виде... то есть на чекбоксах читал единицу или нуль, записывал итоговое значение типа 1000101110 и конвертил в десятичное... поиск хоть и побыстрее, но все равно заказчикам не нравится... Поэтому решил поспрашивать на форумах, может отсоветуете как еще можно поступить... PS: вариант хранения каждой услуги в своей ячейке не предлагать Заранее спасибо. |
| Автор: HalkaR 9.1.2006, 00:27 |
| Скорее всего нужно будет именно хранить каждую услугу в своей ячейке, ведь может быть отбор по услугам. Или нет? Уточните - какие варианты вывода информации есть? Какие виды поиска? |
| Автор: Mal Hack 9.1.2006, 01:56 |
| Делать множество. Единственный разумный выход. Со множествами можно работать через IN, что очень хорошо для поиска. |
| Автор: chief39 10.1.2006, 11:09 |
| Самое логичное и разумное - список услуг, список девушек, связка девушка-услуга. То есть в ОТДЕЛЬНЫХ ячейках. Что-то здесь не так.... Ну пусть у тебя(в смысле у них) несколько тысяч(!) девушек. Не может быть чтоб настолько тупила база, чтоб клиенты жаловались на низкое быстродействие PS. Везёт же людям с предметной областью... прям приятно писать |
| Автор: Akina 10.1.2006, 12:05 |
| Связь девушка-услуга - это связь типа многие-ко-многим. Тут быстрее чем связывающая таблица ничего не придумать... |
| Автор: Bose 13.1.2006, 17:47 | ||
в MySQL именно для этого есть тип столбца SET(множество), работает точно также как ты и описал. Выборку можно производить импользуя IN или бинарные операции(И/ИЛИ). А вообще, правее всех Akina. Самым лучшим вариантом будет хранить список услуг в одной таблице, список (не)девушек в другой, а для связки создать третью. Это и быстрее будет и универсальнее, ибо заказчики смогут сами добавлять новые услуги, и для этого не придётся изменять структуру базы данных. |
| Автор: batigoal 15.1.2006, 00:12 | ||
А ты пробовал? Я сталкивался немного... скорее - противно. |
| Автор: chief39 15.1.2006, 12:02 | ||
ЗЫ: Что-то форум периодически глючит. Некоторые разделы. По очереди. Вместо красивого зелёненького - всё белое, кнопочки в синих рамочках. Разделителей между постами и проч. - нету. (Забыл топик куда баги найденые постить Под виндой ФФокс 1.0 вот только вчера начал глюкавить. Под линухом ФФ - последнюю неделю. Только Konqueror - наман. Вчера. Был. IE - нормально вроде. ЗЗЫ: Пардон за пост, полный оффтопа |