Какой движок базы данных использовать для определения зависимостей? Можно ли использовать базу данных SQL? - PullRequest
0 голосов
/ 29 мая 2019

Я не знаю, должен ли этот вопрос быть здесь, на stackoverflow, но я попробую его.

У меня есть система компонентов.Эти компоненты взаимозависимы.Мне нужно хранить зависимости в некоторой базе данных / хранилище данных, где это будет быстро разрешено.Наша система использует базу данных SQL, MongoDB и Elastic search - если есть способ использовать базу данных SQL, я считаю это лучшим способом для нас.Какой тип хранилища данных мне следует использовать, и не могли бы вы привести простой (но достаточно сложный) пример?

Пример зависимости:

  • Предположим, у нас есть компоненты C, C1, C2, C3, C4, C5, C6, C7
  • Давайте определим следующее правило:
C is dependent on C1 and (C2 or C3 or C4) and (C5 and (C6 xor K7))

Когда мы определим xor как:

(C6 and not(C7)) or (C7 and not(C6))

Это означает, что все правила зависимости задаются каклогические операторы: and, or, not.Условия могут быть вложенными.

Хранилище должно быть в состоянии дать ответы на следующие вопросы:

  • Я выбрал компоненты C3, C4, C5, можно ли выбрать компонентC?
  • Дайте мне список компонентов, когда я выбрал C2, C5, C7?
  • Какие компоненты я должен выбрать, когда я хочу получить компонент C?

Расчет можно обработать в приложении.Нет необходимости полностью разрешать сервер / систему хранения, но я хотел бы избежать синтаксического анализа: «Я мог бы использовать SQL и сохранить условия в виде строки, позже проанализировать строку и вычислить результат в приложении», ноэто не эффективно, я думаю, что это не хорошее решение.

Спасибо за все ваши советы.

...