powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Области решений
7 сообщений из 7, страница 1 из 1
Области решений
    #35505449
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим у меня есть ситуации и обстоятельства . Ситуация - узел, под которым в древовидной структуре, так сказать, сочетаются обстоятельства . Притом ситуация может сама входить как обстоятельство в некую другую ситуацию .
Допустим каждая ситуация-обстоятельство связано с некими решениями .

Задача состоит в том, что на вход "подается" структура связанных обстоятельств, которую надо "наложить" на имеющуюся сеть, в которой привязаны решения. По совпаденнии накладываемой сети с неким участком связанных обстоятельств идентифицируется соответсвующая им ситуация и таким образом находится решение .

Можно ли это сделать средствами реляционной БД????
...
Рейтинг: 0 / 0
Области решений
    #35505452
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это вроде поиска по потенциально бесконечному ключу в котором не учитывается порядок полей. Хотя наверное и неудачная аналогия.
...
Рейтинг: 0 / 0
Области решений
    #35505528
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опичываемое вами ближе всего к графу. И деревья и графы можно реализовывать в РСУБД. Вы хотите получить от форума готовую схему БД для вашей задачи ?
...
Рейтинг: 0 / 0
Области решений
    #35505619
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-ЛюбительОпичываемое вами ближе всего к графу. И деревья и графы можно реализовывать в РСУБД. Вы хотите получить от форума готовую схему БД для вашей задачи ?

Дело даже не в схеме. Навернео надо было помещать в разде Программирование, поскольку тут вопрос даже не схемы СУБД, а в целом - структура хранения + алгоритм.

На другом форуме дали вариант. Ключевой момент - графы представляются как матрица.
В ячейках -0 - если связи нет, 1 - если связь есть.
Поиск вхождения подграфа в граф - перебор.

Представляя граф как матрицу, легко переходим к схеме хранения - таблица, два поля. В каждом - номера вершин (Id обстоятельства-ситуации). Наличие записи говорит о наличии связи.

Пограф - такой же набор.

Опа - вот решение - два селекта - один с условием in, второй через not exists!
...
Рейтинг: 0 / 0
Области решений
    #35505737
Alexsalog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но правда, решение дает далеко не каждое сочетание поэтому надо еще подумать над "нечеткой логикой"
...
Рейтинг: 0 / 0
Области решений
    #35506219
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что касается алгоритмов над графами, то кажется почти всё что можно уже придумали... и алгоритм на С++ будет в разы шутрее работать чем SQL
конечно в некоторых ситуациях c SQL будет проще, но ИМХО в СУБД - хранить графы, а алгоритмы в клиентах
...
Рейтинг: 0 / 0
Области решений
    #35527200
Николай1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexsalogЭто вроде поиска по потенциально бесконечному ключу в котором не учитывается порядок полей. Хотя наверное и неудачная аналогия.

Угм.
Я такое делал. Гарантировано работало, только при прокладке "маршрута" с самого верха. Решения для случаев:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
            N4 
          /  
      N2       
    /     \ 
N1        N3
    \  
      N5
         \
          N3 


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


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