Постановка: при наборе нового объявления
сложно набирать телефоны - можно
"подтянуть" телефоны из предыдущих
объявлений.
Вместо того, чтобы помнить телефоны
владельцев, агент может указать только
номер или часть номера, и нажать кнопку
"похожие".
Открывается новая форма, где отображаются
уже вышедшие объявления (вернее номера
телефонов в предыдущих объявлениях
агента).
Реализация.
Что является основой для поиска?
На форме 1 по набору объявления есть 3 поля
для телефонов. Запоминаем их.
Нажимаем кнопку, запоминаем эти телефоны и
переходим на форму 2.
Что ищем?
Поиск идет по всем 3 телефонам предыдущих
объявлений агента.
Ищем 3 запомненные строки, объединяем
результат поиска через or в условии where. Т.е.
ищем не только строку 1 в телефонах 1,2,3, но и
строку 2 в телефонах 1,2,3, строку 3 в
телефонах 1,2,3.
Сверху делаем distinct - обязательно!!!
Что отображается в списке поиска?
Как результат на форме 2 выдаем список. В
списке три телефона, один за одним . Агент
выбирает из этого списка щелчком, либо
нажимает кнопку. Текущая форма 2
закрывается, в форме 1 все телефоны
подтянулись автоматически. Агент может их
поменять при желании.
Ранее, когда телефоны сохранялись в БД, они
переводились в "нормированный" вид. Поэтому
поиск будет по varchar полям, а телефоны внутри
строки упорядочены по возрастанию.
varchar поля нужны для поиска по части
телефона - это не возможно для integer или number.
Это не дефект а улучшение, поэтому низкий
приоритет.
Обсуждение "нормирования" при сохранении
телефонов является стоппером.
Original issue reported on code.google.com by Vitaly.M...@gmail.com on 31 Aug 2012 at 5:39
Original issue reported on code.google.com by
Vitaly.M...@gmail.com
on 31 Aug 2012 at 5:39