Я пытаюсь смоделировать доступ к учетной записи в графической БД.
Учетная запись может иметь несколько пользователей и несколько функций. Пользователь может иметь доступ ко многим учетным записям. Каждая учетная запись может предоставить доступ только к части функций для каждого пользователя.
Один способ, которым я вижу, состоит в том, чтобы представлять доступ для каждого пользователя через атрибуты отношений, это позволяет иметь общий узел функции.
пользователь_1 имеет доступ к account_1-feature_1 и account_2-feature-2. У user_1 нет доступа к account_1-feature_2, даже если он включен для учетной записи.
Еще один способ смоделировать тот же доступ, но без атрибута взаимосвязи, - создать узлы специфичных для учетной записи узлов.
Вопрос 1: какой из этих двух способов является более «правильным» моделированием в мире графовых БД?
Теперь, чтобы сделать вещи более интересными, в учетной записи также могут быть части, к которым могут обращаться несколько учетных записей, и определенная функция должна иметь возможность ограничивать доступ к ней только для определенной части пользователем.
В этом примере user_1 может получить доступ к account_1 только для part_a feature_1.
Мне кажется, что определение атрибута для отношений - это способ, с помощью которого можно ограничить доступ пользователей по функциям и по части учетной записи. Тем не менее, чтение neo4j powerpoints было бы одним из запахов кода отношений, имеющих «много атрибутоподобных свойств». Есть ли лучший способ подойти к такой проблеме в графе?