powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как хранить условия ?
16 сообщений из 16, страница 1 из 1
Как хранить условия ?
    #37383988
Доброе время суток.

Какая структура Базы Данных больше всего подходит для хранения и поиска по условиям...
Например, есть такое условие :
(("бешенные псы" OR "дикие кошки") AND ("ангелочки" OR "цыпочки")).
Конечно, условие может быть и сложнее...

Соответственно, надо, что бы можно было найти ("дикие кошки" AND "цыпочки").

Как организовать хранение условий ? Разбивать на пары ? Хранить как строку и обрабатывать программно(не очень бы хотелось) ?

Спасибо.
...
Рейтинг: 0 / 0
Как хранить условия ?
    #37384191
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чует мое сердце что эти условия вам пользователи вколачивают (тогда храним положения кнопок и содержимое полей ввода) или они поступают слева как текст - тогда храним как текст.

То есть храним не условия - а информацию извне.
...
Рейтинг: 0 / 0
Как хранить условия ?
    #37384196
Да, можно, конечно, хранить полный текст... но, как потом по нему искать ? как находить соответствия ?
...
Рейтинг: 0 / 0
Как хранить условия ?
    #37384584
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
храним пары, плюс не КНФ (как у вас), а ДНФ, плюс отрицание, операнд может быть любой записью этой же таблице
...
Рейтинг: 0 / 0
Как хранить условия ?
    #37385281
т.е., если я правильно Вас понял, то приводимое мной условие должно быть представлено в БД четырьмя строками :

"бешенные псы" OR "ангелочки"
"бешенные псы" OR "цыпочки"
"дикие кошки" OR "ангелочки"
"дикие кошки" OR "цыпочки"

а если условие будет более сложное ? например, из нескольких соединяющих АND-ов ?
...
Рейтинг: 0 / 0
Как хранить условия ?
    #37385611
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Советы будут более осмысленными если вы больше расскажете о задаче - входные данные, типы запросов/параметров и т.п. А то это гадание на кофейной гуще.
Итак вы рассказали что есть некие условия (как они формируются/как часто обновляются) и по ним надо искать (кому - человеку/роботу) и какие приоритеты (быстро/точно/экономно) и для чего это надо (СБ отлавливает кто искал "президент нехороший человек"?)
Далее эти условия для поиска по некоей базе (и про эту базу тоже надо рассказать статична она или нет)
...
Рейтинг: 0 / 0
Как хранить условия ?
    #37385860
SERG1257,

Условия будут вводиться человеком... например, имею/ищу "зеленую Тойоту 2007 года"...
Insert-ов и Select-ов будет много, Update-ов меньше...

Точность и быстрота важна, экономичность в меньшей степени...
База данных очень динамична и имеет большой объём данных...
...
Рейтинг: 0 / 0
Как хранить условия ?
    #37386074
belugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AST ? текст?
...
Рейтинг: 0 / 0
Как хранить условия ?
    #37386711
Mainframe_старый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатолийДут.е., если я правильно Вас понял, то приводимое мной условие должно быть представлено в БД четырьмя строками :

"бешенные псы" OR "ангелочки"
"бешенные псы" OR "цыпочки"
"дикие кошки" OR "ангелочки"
"дикие кошки" OR "цыпочки"

а если условие будет более сложное ? например, из нескольких соединяющих АND-ов ?

ДНФ - это (X1 AND Y1) OR (X2 AND Y2) OR ...
Соответственно хранятся X и Y (как атрибуты некоторого объекта, но лучше вам тут не грузиться нашими сложностями)

Вместо X и Y может быть любая иная запись из пары (X AND Y), что позволяет формировать условия любого уровня вложенности
...
Рейтинг: 0 / 0
Как хранить условия ?
    #37387795
Mainframe_старый,

и как будет выглядеть таблица таких пар ?
а если мне надо X and Y and Z ? и как потом искать такое условие ?
...
Рейтинг: 0 / 0
Как хранить условия ?
    #37387963
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатолийДу,
№ запроса № операнда тип условия операнд 1 (поле или другой операнд) операнд 2 (поле или другой операнд или значение)11"="поле Xзначение "майка"12"="поле Yзначение "зелёная"13ANDоперанд 1операнд 214"="поле Zзначение "бумажная"15ANDоперанд 3операнд 416"="поле Xзначение "футболка"17ORоперанд 5операнд 62...
такои образом, 1-ый запрос:
Код: plaintext
1.
2.
        1     3       2           5          4       7          6
(((X="майка") AND (Y="зелёная")) AND (Z="бумажная")) OR (X="футболка")
типизацию операндов можешь сам вынести в отдельные поля
...
Рейтинг: 0 / 0
Как хранить условия ?
    #37389226
т.е., условия любой сложности всегда можно свести к набору бинарных операций ?
а как искать ? по операнду 2 "вытаскивать" всё условие и дообрабатывать программно ?
...
Рейтинг: 0 / 0
Как хранить условия ?
    #37389948
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатолийДу, да,
перебирая с фильтром по номеру запросом и
отсортировав по № операнда
в зависимости от типа условия
формировать текст запроса для каждой записи
(результат каждой операции можно брать в скобки, чтобы сохранить правильную последовательность выполнения)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как хранить условия ?
    #38597834
maks28rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А не могли бы и мне подсказать. Задача: Получаю набор свойств например a and b and c. Далее мне надо сверит по базе данных условий, что если в система имеет следующие свойства (a and c) or d то выбрать эту запись.
Я подозреваю что задача схожа с предыдущим человеком.
Как лучше организовать таблицы с базе данных для данного поиска.
Например мне лучше хранить:
(a and c) or d | условие 1
или
a and c | условие 1
d | условие 1
???
Как потом в базе делать сопоставление наших свойств и условий.
В примере выше система должна удовлетворять условию 1. Так как обладает свойствами a и c.
...
Рейтинг: 0 / 0
Как хранить условия ?
    #38599551
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит организовать таблицы ?

Во-первых, нужны таблицы для хранения "синтаксических деревьев" логических выражений с вершинами И ИЛИ
В-вторых, в качестве операндов в выражениях должны фигурировать поля/атрибуты/свойства некоего набора данных, к которому применяется это логическое выражение.
Надо обеспечить работу механизма, которому на вход подается этот набор данных, условие а на выходе - результат применения условия проверки для каждой строки набора.

В принципе все реализуемо, я такую штуку делал, работает.
...
Рейтинг: 0 / 0
Как хранить условия ?
    #38600063
maks28rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Программист-Любитель,

Согласен, "организовать таблицы" неудачно ляпнул.
Не совсем понял вот это: "которому на вход подается этот набор данных, условие а на выходе - результат применения условия проверки для каждой строки набора."

У меня на вход есть что то вроде:
Спущенное колесо, стучит в двигателе, царапина на двери

Условия которые надо хранить в базе(не знаю как лучше)
1) (спущенное колесо & нет запаски) | не работает фара
2) стучит в двигателе | черный выхлоп

Надо найти удовлетворяет ли вход условиям в БД. Если да то каким именно.
В данном примере удовлетворяет второму условию
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как хранить условия ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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