图数据库建模混乱
Graph Database Modelling Confusion
我正在尝试学习 neo4j 并且来自关系数据库,我对以下建模的正确方法有点困惑:
Account Application ApplicationModule
acct_id app_id app_mod_id
name name app_id
name
AccountModuleAccess
id
acct_id
app_mod_id
can_read
can_delete
can_update
can_insert
可以看出如下关系
Application->ApplicationModule->AccountModuleAccess
和
Account->AccountModuleAccess
但让我感到困惑的是 AccountModuleAccess 与 Account 和 AccountModule 的关系
我认为这有助于考虑在您的模型中什么应该是关系,什么应该是节点(大多数属性都相当清楚)。
请注意,AccountModuleAccess 实际上是关于帐户如何与帐户模块相关的,其中大部分可能可以建模为关系。
你也可以去掉外键的概念,使用关系。
考虑这个模型:
(:Account)-[:CAN_READ|CAN_DELETE|CAN_UPDATE|CAN_INSERT]->(:ApplicationModule)
(:ApplicationModule)-[:MODULE_OF]->(:Application)
为了节省空间,我将所有关系放在一起,但每个关系都是 :Account 和 :ApplicationModule 之间的独立关系。
我正在尝试学习 neo4j 并且来自关系数据库,我对以下建模的正确方法有点困惑:
Account Application ApplicationModule
acct_id app_id app_mod_id
name name app_id
name
AccountModuleAccess
id
acct_id
app_mod_id
can_read
can_delete
can_update
can_insert
可以看出如下关系
Application->ApplicationModule->AccountModuleAccess
和
Account->AccountModuleAccess
但让我感到困惑的是 AccountModuleAccess 与 Account 和 AccountModule 的关系
我认为这有助于考虑在您的模型中什么应该是关系,什么应该是节点(大多数属性都相当清楚)。
请注意,AccountModuleAccess 实际上是关于帐户如何与帐户模块相关的,其中大部分可能可以建模为关系。
你也可以去掉外键的概念,使用关系。
考虑这个模型:
(:Account)-[:CAN_READ|CAN_DELETE|CAN_UPDATE|CAN_INSERT]->(:ApplicationModule)
(:ApplicationModule)-[:MODULE_OF]->(:Application)
为了节省空间,我将所有关系放在一起,但每个关系都是 :Account 和 :ApplicationModule 之间的独立关系。