Лучший способ проанализировать и смоделировать формулы с зависимостями друг от друга в базе данных и оценить их с учетом набора данных - PullRequest
0 голосов
/ 17 апреля 2020

Допустим, у нас есть набор пользовательских формул, которые зависят от других формул, которые выглядят примерно так (это может быть любой синтаксис).

Example: Give a Customer with multiple accounts

ExampleOne: Accounts.Sum() - ExampleTwo 
ExampleTwo: Accounts.CurrentAssets - 200 / CurrentYear 
...etc

Я хочу разработать службу, которая предоставляет клиенту счета, оценить эти формулы и вернуть результат для каждого элемента формулы:

ExampleOne: 123
ExampleTwo: 999
...etc

Каков наилучший подход к этому учитывая следующие требования в среде c#. net. Обратите внимание, что синтаксис здесь не важен):

  • Эти формулы часто меняются не техническими специалистами
  • Существуют сотни этих формул, которые имеют зависимости от каждого другое (Acycli c)
  • Эти формулы необходимо сохранить в базе данных
  • Вычисления, выполняемые для оценки этих формул, должны быть быстрыми

Я пытаюсь оценить несколько параметров:

База данных графиков

Анализ формул в виде абстрактного синтаксического дерева и сохранение их в базе данных графов. Однако при таком подходе трудно обновить формулы после создания.

Оценивать формулы как время выполнения

Я мог бы написать синтаксический анализатор, который будет принимать формулу и оценивать ее во время выполнения.

Rules Engine

Я видел этот аналогичный вопрос . Но я не уверен, что это правильный подход для этого.

Реляционная база данных

Как бы я смоделировал формулы в базе данных с возможностью их простого изменения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...