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

问题描述 投票:0回答:1

在构建我们的数据模型(文档数据库中的JSON)时,我们有users,它是project的一部分。 I.E.项目有很多用户,用户可以成为许多项目的一部分。

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

{
   "id": "u1"
   "name": "John Doe",
   "email": "[email protected]",
   "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"
    ]
}

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

json model data-modeling
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.