Должен ли я использовать промежуточный узел в моей базе данных Neo4j? - PullRequest
0 голосов
/ 29 марта 2020

Я новичок в графических базах данных, и я пытаюсь создать приложение, в котором пользователи могут публиковать текст и связывать его с другим текстом. Например, пользователь Сара может захотеть связать узел, содержащий текст «Я должен заплатить налоги», с типом отношения «supportBy», указывающим на текст «IRS выследит меня, и я go брошу в тюрьму, если Я не'. Тем не менее, я хочу связать отношения с человеком, который изначально подделал их. Я могу придумать пару способов сделать это, но я не знаю, как это приведет к лучшей производительности и хранению данных. Все способы, которые я могу придумать, заканчиваются повторением информации, и я не хочу, чтобы база данных была раздутой.

Основной способ - это ввести промежуточный узел, на который Сара указывает с помощью отношения «made». Другие пользователи, в свою очередь, могут «потребовать» от узла, чтобы он по существу поддержал промежуточный узел и не позволил ему удалить его, если первоначальный производитель решил разорвать соединение. Затем этот промежуточный узел указывает на два исходных узла с «supportBy» и «support».

Думаю ли я об этом праве, или есть лучший способ подойти к этой ситуации?

1 Ответ

0 голосов
/ 30 марта 2020

Можно создать пару полей атрибутов, чтобы аннотировать ребро SupportedBy между утверждениями. Одним из них может быть «Original Claim» со значением Sarah, с другими атрибутами «Upvotes» и «Downvotes», которые добавляют имена пользователей в виде вектора / списка. Простой запрос на длину атрибутов Upvote и Downvote позволяет получить оценку net.

...