База данных графиков OrientDB - установка содержимого поля на основе соединенных ребер - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь создать базу данных графиков в OrientDB, в которой будет храниться некоторая информация о видеоиграх.Я хочу, чтобы некоторые поля в «вершине игры» заполнялись на основе отношения (вершин) вершины игры с другими вершинами.

В настоящее время у меня есть 3 вида вершин:

  1. Игра

  2. Платформа

  3. Компания

Чтобы связать эти 3 вершинных класса друг с другом, у меня есть 2 вида ребер:

  1. Available_On

  2. Developed_By

Например:"Game" (Vertex) было "Developed_By" (Edge) "Company" (Vertex)

или

например: «Игра» (вершина) - это «Avaialble_On» (Edge) «Платформа» (вершина)

Вершина "Игры" имеет четыре поля:

  1. name (String)

  2. releaseDate (String)

  3. devs (LinkList?)

  4. plats (LinkList?)

"имя" и "releaseDate "на" Game "Vertex - это простые строки, которые я устанавливаю вручную.Однако я хочу, чтобы поля «devs» и «plats» устанавливались на основе отношений вершин «Game» с вершинами «Platform» и «Company».

например: Если у вершины "Game" есть какие-либо исходящие отношения "Developed_By" с какими-либо вершинами "Company", укажите эти поля "Name" вершин "Company" в качестве содержимогоПоле "devs" для вершины "Game".

Я обнаружил, что могу установить Свойства для класса игровых вершин и добавить «LINKLIST» в качестве типа, что позволяет мне связать Свойство с Linked_Class (например, «Компания»).

К сожалению, добавление этого свойства LinkList к вершине "Game", похоже, ничего не делало (насколько я могу судить);при запросе к «игре» вершина не отображает поле «devs» или «plats», несмотря на то, что они появляются в схеме.

В настоящее время, если я отправлю этот запрос:

SELECT FROM Game WHERE name='Myst Masterpiece Edition'

, я получу вершины игры, но свойства LinkList "devs" и "plats", похоже, вообще не отображаются.

Я не совсем уверен, куда идти дальше;Любое понимание очень ценится.

1 Ответ

0 голосов
/ 13 сентября 2018

Чтобы использовать Linklist, вы должны поместить в него значения.

create class Game extends V
create property Game.name string
create property Game.releaseDate string
create property Game.devs LINKLIST
create property Game.plats LINKLIST

create class Company extends V
create property Company.name string


insert into Company(name) values ("Ordilogic System")                         #26:0
insert into Game(name, releaseDate) values ("Unreal"), ("1998-05-22")         #17:0
update #17:0 set devs = #26:0


select from Game where name = "Unreal"

enter image description here

Чтобы увидеть имя разработчика:

select devs.name as devs, releaseDate, name, out() as Developed_By from Game where name = "Unreal"
...