2

我不确定我是否正在为 CouchBase 移动数据库创建正确的架构。以下是 1 个用户的移动应用的架构示例:

{
    "users": [
        {
            "firstname": "Jim",
            "lastname": "terry",
            "addresses": [
                {
                    "address": "123 Way",
                    "zipcode": "65432"
                },
                ...
            ],
            "activities": [
                {
                    "steps": 500
                },
                {
                    "sleep_hours": 2
                },
                ...
            ],
            "posts": [
                {
                    "subject": "Hello",
                    "body": "World"
                },
                ...
            ]
        },
       ...
    ]
}

一个移动应用程序可以在一个设备上拥有 1 到多个用户。服务器数据库可以容纳许多应用程序只能访问的用户。我很难理解的是这是否是沙发基础应用程序的良好数据模型。我已经对用户模式下与用户关联的所有数据进行了非规范化。我的问题如下:

  1. 如果用户的活动变得非常大并且帖子变得非常大,会发生什么?当您对活动进行更新时,它是否必须保存整个文档,这可以在仅更新用户的一条数据时创建一个性能选项?数据库是否将这些数组分解为与用户分开的文档?
  2. 以这种方式将数据存储在活动中是最佳实践吗?在示例中,两个对象都是一个活动,但它们包含完全独立的数据。
  3. 这是最有效的模型吗?更改的一个示例可能是创建“step_activities”和“sleep_activities”而不是使用通用的“activities”:[]?
4

0 回答 0