|
|
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
Доброе время суток. Какая структура Базы Данных больше всего подходит для хранения и поиска по условиям... Например, есть такое условие : (("бешенные псы" OR "дикие кошки") AND ("ангелочки" OR "цыпочки")). Конечно, условие может быть и сложнее... Соответственно, надо, что бы можно было найти ("дикие кошки" AND "цыпочки"). Как организовать хранение условий ? Разбивать на пары ? Хранить как строку и обрабатывать программно(не очень бы хотелось) ? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2011, 12:55 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
Чует мое сердце что эти условия вам пользователи вколачивают (тогда храним положения кнопок и содержимое полей ввода) или они поступают слева как текст - тогда храним как текст. То есть храним не условия - а информацию извне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2011, 17:17 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
Да, можно, конечно, хранить полный текст... но, как потом по нему искать ? как находить соответствия ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2011, 17:23 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
храним пары, плюс не КНФ (как у вас), а ДНФ, плюс отрицание, операнд может быть любой записью этой же таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2011, 08:43 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
т.е., если я правильно Вас понял, то приводимое мной условие должно быть представлено в БД четырьмя строками : "бешенные псы" OR "ангелочки" "бешенные псы" OR "цыпочки" "дикие кошки" OR "ангелочки" "дикие кошки" OR "цыпочки" а если условие будет более сложное ? например, из нескольких соединяющих АND-ов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2011, 14:23 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
Советы будут более осмысленными если вы больше расскажете о задаче - входные данные, типы запросов/параметров и т.п. А то это гадание на кофейной гуще. Итак вы рассказали что есть некие условия (как они формируются/как часто обновляются) и по ним надо искать (кому - человеку/роботу) и какие приоритеты (быстро/точно/экономно) и для чего это надо (СБ отлавливает кто искал "президент нехороший человек"?) Далее эти условия для поиска по некоей базе (и про эту базу тоже надо рассказать статична она или нет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2011, 16:49 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
SERG1257, Условия будут вводиться человеком... например, имею/ищу "зеленую Тойоту 2007 года"... Insert-ов и Select-ов будет много, Update-ов меньше... Точность и быстрота важна, экономичность в меньшей степени... База данных очень динамична и имеет большой объём данных... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2011, 18:45 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
AST ? текст? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2011, 21:58 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
АнатолийДут.е., если я правильно Вас понял, то приводимое мной условие должно быть представлено в БД четырьмя строками : "бешенные псы" OR "ангелочки" "бешенные псы" OR "цыпочки" "дикие кошки" OR "ангелочки" "дикие кошки" OR "цыпочки" а если условие будет более сложное ? например, из нескольких соединяющих АND-ов ? ДНФ - это (X1 AND Y1) OR (X2 AND Y2) OR ... Соответственно хранятся X и Y (как атрибуты некоторого объекта, но лучше вам тут не грузиться нашими сложностями) Вместо X и Y может быть любая иная запись из пары (X AND Y), что позволяет формировать условия любого уровня вложенности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2011, 12:06 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
Mainframe_старый, и как будет выглядеть таблица таких пар ? а если мне надо X and Y and Z ? и как потом искать такое условие ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2011, 18:32 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
АнатолийДу, № запроса № операнда тип условия операнд 1 (поле или другой операнд) операнд 2 (поле или другой операнд или значение)11"="поле Xзначение "майка"12"="поле Yзначение "зелёная"13ANDоперанд 1операнд 214"="поле Zзначение "бумажная"15ANDоперанд 3операнд 416"="поле Xзначение "футболка"17ORоперанд 5операнд 62... такои образом, 1-ый запрос: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2011, 21:30 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
т.е., условия любой сложности всегда можно свести к набору бинарных операций ? а как искать ? по операнду 2 "вытаскивать" всё условие и дообрабатывать программно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2011, 14:43 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
АнатолийДу, да, перебирая с фильтром по номеру запросом и отсортировав по № операнда в зависимости от типа условия формировать текст запроса для каждой записи (результат каждой операции можно брать в скобки, чтобы сохранить правильную последовательность выполнения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2011, 19:19 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
А не могли бы и мне подсказать. Задача: Получаю набор свойств например 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 11:24 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
Что значит организовать таблицы ? Во-первых, нужны таблицы для хранения "синтаксических деревьев" логических выражений с вершинами И ИЛИ В-вторых, в качестве операндов в выражениях должны фигурировать поля/атрибуты/свойства некоего набора данных, к которому применяется это логическое выражение. Надо обеспечить работу механизма, которому на вход подается этот набор данных, условие а на выходе - результат применения условия проверки для каждой строки набора. В принципе все реализуемо, я такую штуку делал, работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 19:06 |
|
||
|
Как хранить условия ?
|
|||
|---|---|---|---|
|
#18+
Программист-Любитель, Согласен, "организовать таблицы" неудачно ляпнул. Не совсем понял вот это: "которому на вход подается этот набор данных, условие а на выходе - результат применения условия проверки для каждой строки набора." У меня на вход есть что то вроде: Спущенное колесо, стучит в двигателе, царапина на двери Условия которые надо хранить в базе(не знаю как лучше) 1) (спущенное колесо & нет запаски) | не работает фара 2) стучит в двигателе | черный выхлоп Надо найти удовлетворяет ли вход условиям в БД. Если да то каким именно. В данном примере удовлетворяет второму условию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2014, 08:49 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38600063&tid=1540940]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 492ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...