JSON数据建模:有权访问项目的用户

时间:2019-02-27 02:53:32

标签: json model data-modeling

在构造数据模型(文档数据库中的JSON)时,我们拥有users,它们是project的一部分。即一个项目有许多用户,一个用户可以是许多项目的一部分。

将用户有权访问的每个项目存储在用户中是否有意义:

{
   "id": "u1"
   "name": "John Doe",
   "email": "john.doe@domain.com",
   "projects": [
       "p1",
       "p2",
       "p3"
   ]
}

或者将用户存储在他们自己的项目中:

{
    "id": "p1"
    "name": "Project A",
    "users": [
        "u1"
    ]
}

{
    "id": "p2"
    "name": "Project B",
    "users": [
        "u1"
    ]
}

{
    "id": "p3"
    "name": "Project C",
    "users": [
        "u1"
    ]
}

我们预计需要选择给定用户的所有项目以及选择给定项目的所有用户。

1 个答案:

答案 0 :(得分:0)

根据Mongo数据库(https://docs.mongodb.com/manual/tutorial/model-embedded-one-to-many-relationships-between-documents)的文档,上述两种方法都可以。 我认为企业将决定应该选择哪种数据模型,例如,如果只有一个或两个项目,但用户很多,而您只需要显示用户项目列表,第一种方法就更好。 P / S:如果您使用Mongo,请考虑使用mongoose,这有助于轻松检索数据。