Могу ли я указать это (свойство: интерес) для каждого пользователя в одном отношении KNOWS или мне нужно создать два отношения между пользователями и установить атрибут для каждого из отношений?
Вам понадобятся два отношения.
Вы можете сделать это с одним, но тогда вам нужно сохранить два свойства во взаимосвязи и информацию о том, какое свойство идет с каким узлом. Гораздо проще с двумя отношениями.
Из комментария:
Могу ли я сохранить их как двунаправленные или мне нужно использовать направленное
в этом случае?
Отношения всегда направлены. Только когда вы запрашиваете, появляется понятие двунаправленного, но оно не является действительно двунаправленным, оно не имеет направления, например, (a)-[r]-(b)
. Таким образом, вы бы использовали (a)-[r]->(b)
и (b)-[r]->(a)
или (a)<-[r]-(b)
. Если вы запрашиваете направление, то знаете, как применить свойство отношений.
Обычно я выполняю большую часть своей работы с Java как встроенное приложение вместо Cypher, и оно платит за использование направленных запросов, так как делает меньше кода для выполнения ассоциаций.
Примечание
Поскольку ваш случай очень прост, просто попробуйте различные методы и посмотрите, что работает. Не забывайте отслеживать, сколько времени занимают запросы, и при необходимости добавлять индексы. Также используйте инструмент профилирования запросов, чтобы убедиться, что вы делаете эффективные запросы.