Выборка Уникальных Значений Из Базы

Тема в разделе "Lotus - Программирование", создана пользователем RixPvl, 27 мар 2012.

  1. RixPvl

    RixPvl Well-Known Member

    Регистрация:
    30 ноя 2011
    Сообщения:
    85
    Симпатии:
    0
    Привет!
    Скажите как сделать выборку уникального значения из базы, например как в MySQL disting, есть ли что нибудь подобное в Lotus?
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    наверное вид с первой категоризированной колонкой
     
  3. RixPvl

    RixPvl Well-Known Member

    Регистрация:
    30 ноя 2011
    Сообщения:
    85
    Симпатии:
    0
    а как мне программно получить их?
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
  5. RixPvl

    RixPvl Well-Known Member

    Регистрация:
    30 ноя 2011
    Сообщения:
    85
    Симпатии:
    0
    Morpheus
    Спасибо, а способа как в MySQL нет, вытащить запросом?
     
  6. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Если я правильно поняла, что надо, то можно еще не через категорию, а у вьюхи выставить (ODBC Access) Generate unique keys in index.
     
  7. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    RixPvl
    ну этот же вид, + @Unique( @DBColumnt (...) )
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    помимо совершенно справедливых указаний коллег отмечу: Домино НЕ РСУБД (в ФАК это есть), disting слово существует, но в SQL, скока "себя помню", есть distinct. Такой ощущ , что тут вы сочинили :)
    и не надо приспосабливать модель РСУБД к модели доступа и хранения в Домино...
    здесь наиболее близка логика key-value, что в наст. вр. обозвали NOSQL
     
  9. RixPvl

    RixPvl Well-Known Member

    Регистрация:
    30 ноя 2011
    Сообщения:
    85
    Симпатии:
    0
    lmike
    Не не сочинил, я всего лишь просто хотел узнать если ли в лотусе подобные вещи, которые я упомянул...
    а насчет disting и distinct, просто забыл как оно правильно пишется) и написал то что было на слуху) но суть я думаю вы поняли).

    Но вопрос. все же остается открытым, как более правильней отобрать уникальные данные по полю из базы лотуса ну и желательно чтобы он был быстрым...
    Вариант с вьшкой как предложил Morpheus этот способ является ли правильным?
     
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    RixPvl "быстрым", для Домины является "всё" что индексировано, индексы сущ. для вьюшек (сортировка колонки, упрощённо, и есть индекс) самым быстрым является поиск по UNID (универсальный идентификатор документа)...
    и есть реализация Digest Search (кот. "здесь" поминали не раз)
    НО, уникальность значений в колонке не является обязательной, а потому - надо "фильтровать"
    OKEN указала http://codeby.net/forum/threads/46263.html?vi...st&p=222162
    есть сайдэффекты (конкретно - не вспомню)
    Morpheus предложил способ для малого кол-ва данных, через собаки
    категоризация "упрощает" получение (по навигатору) - може сразу пройтись по sibling, НО, категории усложняют индекс
    как-то так ;)
    само себе получение уникальных значений смысла не несёт, д.б. задача, а вот её-то вы и не озвучили
     
  11. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    В формуле отбора представления c включенным флагом "ODBC Access\Generate unique keys in index" нужно обязательно отфильтровывать конфликты (@IsUnavailable($Conflict))
     
  12. FixeR

    FixeR Гость

    RixPvl,
    Можно и вручную, в принципе.
    1) Получаем коллекцию документов, из которых надо вытащить значения (например, из view или db.Search).
    2) Проходимся по коллекции в цикле, собираем в массив значения полей.
    3) Функция ArrayUnique уберёт дубликаты из массива.
     
  13. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    FixeR
    1) Лучше в массив сразу добавлять значения только уникальных полей, быстрее будет.
    2) Есть ограничения на размер массива.
     
  14. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    List тогда уж
     
Загрузка...

Поделиться этой страницей