В моем приложении Nodejs (использующем базу данных MongoDB) я пытаюсь создать систему, в которой пользователь может определять переменные. Поэтому я могу определить переменную с именем x и присвоить ей значение 3. Я также могу составить формулы, где выражение переменной может ссылаться на определенные переменные, которые уже были определены:
y = x + 5
z = x * y
В моей базе данных мои переменные хранятся так:
{ id: "uuid-1", name: "x", expression: "3" }
{ id: "uuid-2", name: "y", expression: "$x + 5" }
{ id: "uuid-3", name: "z", expression: "$x * $y" }
Я использую $ префикс, чтобы при оценке выражений я мог использовать регулярное выражение для изменения имени переменной на ее текущее значение.
Моя проблема в том, что если пользователь хочет изменить имя x на " a ", я должен обновить каждую переменную, выражение которой ссылается на" x ".
{ id: "uuid-1", name: "a", expression: "3" }
{ id: "uuid-2", name: "y", expression: "$a + 5" }
{ id: "uuid-3", name: "z", expression: "$a * $y" }
Я хочу, чтобы пользователь мог использовать имена переменных при определении выражения другой переменной, но я также не хочу чтобы обновить кучу переменных при изменении имени переменной.
Один из примеров того, чего я пытаюсь достичь, - это «пометка тегами» на Facebook. Поэтому, если я оставляю комментарий и хочу отметить 2 друзей, я просто добавляю префикс @ перед их именем.
Вы видели это? @Roger @ Bob
Но в бэк-энде / базе данных Facebook мой комментарий, вероятно, не сохраняется как есть. Если когда-либо Роджер решит изменить свое имя в Facebook на Алан, его имя в моем комментарии должно быть изменено автоматически.
Вы видели это? @ Алан @ Боб
Ты хоть представляешь, как обычно решается такая проблема?
Спасибо большое!