Как лучше всего создать ребра на основе свойства, общего для 2 вершин?
У меня есть 2 класса вершин - EMPLOYEE и BRANCH, оба из которых заполнены данными, и я хочу, чтобы пограничный класс InBranch был их связью.
Так что Сотрудник -InBranch-> Филиал.
Класс Employee со свойствами -> empname, branchname.
Класс ветка с пропетой -> фирменное имя.
Вместо общего имущества (branchname) как отношения,
Я хотел бы сделать их как края (InBranch).
Я пытаюсь сделать работу конструкцией, подобной приведенной ниже:
CREATE EDGE InBranch FROM (SELECT FROM Employee) TO (SELECT FROM Branch) WHERE Employee.branchname = Branch.branchname
который интуитивно похож на код Луки Гарулли:
create edge Owns from (select from Person) to (select from Country)
1 ответ
Решение
Вы не можете сделать это напрямую через sql, но вы можете использовать функцию JS:
var g = orient.getGraph();
var emp = g.command('sql','select from Employee');
for each (a in emp){
br = g.command('sql','select from Branch where branchname = "' + a.getProperty('branchname') + '"');
for each (b in br){
g.command('sql','create edge inBranch from ' + a.getId() + ' to ' + b.getId());
}
}