图数据库建模混淆

时间:2018-03-20 08:37:04

标签: neo4j graph-databases

我试图学习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的关系

1 个答案:

答案 0 :(得分:2)

我认为将有助于考虑模型中应该是什么关系,应该是什么节点(大多数属性都相当清楚)。

请注意,AccountModuleAccess实际上是关于帐户与帐户模块的关系,其中大部分都可以建模为关系。

你也可以摆脱外键的概念,使用那些关系。

考虑这个模型:

(:Account)-[:CAN_READ|CAN_DELETE|CAN_UPDATE|CAN_INSERT]->(:ApplicationModule)
(:ApplicationModule)-[:MODULE_OF]->(:Application)

为了节省空间,我将所有关系放在一起,但每个关系都是一个单独的关系:Account和:ApplicationModule。