powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Посоветуйте как лучше сделать
7 сообщений из 7, страница 1 из 1
Посоветуйте как лучше сделать
    #33869048
Безон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача:
есть таблица с N булевыми столбцами b(i) (так же в таблице может быть столбец B из N бит у которого k бит установлен в 1 если k булевый столбец имеет значение true)
Требуется выбирать все подходящие записи из таблицы по условиям вида:
b(k1) and b(k2) and ... and b(km) (или B&param=param) наиболее быстрым способом. Соответственно SeqScan не подходит так как в таблице очень много записей (несколько миллионов).
...
Рейтинг: 0 / 0
Посоветуйте как лучше сделать
    #33869516
SOmni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я правильно понял задачу, то лучше эти данные не пихать в единственную таблицу. Имею в виду, что у тебя матрица из нулей и единиц, а с боку к ней еще какой-то массив прибит в виде B?
Если так, то может проще B в отдельно табличке сделать. А записи там будут, например, только те, которые указывают на 1-цы в первой таблице...
Ради интереса. Это какая-то практическая задача или чисто алгоритмическая?
...
Рейтинг: 0 / 0
Посоветуйте как лучше сделать
    #33869540
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOmniРади интереса. Это какая-то практическая задача или чисто алгоритмическая?Интересная постановка вопроса. А что, задача не может быть одновременно и практичекой и алгоритмической? Или-таки вместо "алгоритмическая" необходимо читать "теоретическая"?
...
Рейтинг: 0 / 0
Посоветуйте как лучше сделать
    #33869563
Безон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOmniЕсли я правильно понял задачу, то лучше эти данные не пихать в единственную таблицу. Имею в виду, что у тебя матрица из нулей и единиц, а с боку к ней еще какой-то массив прибит в виде B?
Если так, то может проще B в отдельно табличке сделать. А записи там будут, например, только те, которые указывают на 1-цы в первой таблице...
Ради интереса. Это какая-то практическая задача или чисто алгоритмическая?
Неправильно понял задачу:-))
Задача звучит так: есть товар, у товара может быть свойство или не быть (0 или 1). товаров много, свойств тоже много. Нужно найти в базе все товары с указанными пользователем свойствами.
Например если товар телевизоры то примеры свойст такие: (картинка в картинке, плоский, 16на9, долби диджитал и т.д.)
...
Рейтинг: 0 / 0
Посоветуйте как лучше сделать
    #33869669
SOmni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимор Конев SOmniРади интереса. Это какая-то практическая задача или чисто алгоритмическая?Интересная постановка вопроса. А что, задача не может быть одновременно и практичекой и алгоритмической? Или-таки вместо "алгоритмическая" необходимо читать "теоретическая"?
Да я это к тому, что как-то всё расплывчато... битовые маски какие-то... Может и БД тут нафиг не нужна, а человек заблудился просто :)
Теперь всё встало на свои места...
Вариант: берем табличку table_1, в которой есть поля
id_goods
id_property
Заполняем для всех товаров, какие свойства у них есть
ну и потом
select g.* from goods g, table_1 t where g.id=t.id_goods and g.id_property in (1,5,7,8...)
--------------
теперь правильно понял задачу? :)
...
Рейтинг: 0 / 0
Посоветуйте как лучше сделать
    #33869677
SOmni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ошибочка вышла. так, конечно:
select g.* from goods g, table_1 t where g.id=t.id_goods and t.id_property in (1,5,7,8...)
----------
ну и индексы не забыть, работать должно быстро
...
Рейтинг: 0 / 0
Посоветуйте как лучше сделать
    #33869852
Безон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOmniошибочка вышла. так, конечно:
select g.* from goods g, table_1 t where g.id=t.id_goods and t.id_property in (1,5,7,8...)
----------
ну и индексы не забыть, работать должно быстро
можно попробовать:-) спасиб
только нужно учесть что в таблице goods будет около миллиона записей и у каждого товара около 100 свойств. то естьв таблице table_1 будет около 100 мульенов записей.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Посоветуйте как лучше сделать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]