HarmonyOS鸿蒙NEXT中病虫害云数据库存储区、对象类型、数据分析

HarmonyOS鸿蒙NEXT中病虫害云数据库存储区、对象类型、数据分析 存储区:可以理解为数据库; 对象类型:可以理解为表结构; 数据:就是表中的记录; 完整的云数据库开发流程及初始化配置,请参见官方文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/agc-harmonyos-clouddev-clouddb-V5

  1. 指定存储区NMSS db-config.json文件如下:
{
"defaultCloudDBZoneName": "NMSS",
"defaultDataStorageLocation": "CN"
}
  1. 定义病虫害Pest对象类型
{
"objectTypeName": "Pest",
"fields": [
  {
    "fieldName": "AGID",
    "fieldType": "Integer",
    "notNull": true,
    "belongPrimaryKey": true
  },
  {
    "fieldName": "ID",
    "fieldType": "String"
  },
  {
    "fieldName": "Type",
    "fieldType": "String"
  },
  {
    "fieldName": "Img",
    "fieldType": "String"
  },
  {
    "fieldName": "PestName",
    "fieldType": "String"
  },
  {
    "fieldName": "PestDesc",
    "fieldType": "String"
  },
  {
    "fieldName": "PestCtrl",
    "fieldType": "Text"
  },
  {
    "fieldName": "UpdateDate",
    "fieldType": "Date"
  },
  {
    "fieldName": "UserId",
    "fieldType": "String"
  }
],
"indexes": [
  {
    "indexName": "UpdateDateIndex",
    "indexList": [
      {
        "fieldName": "UpdateDate",
        "sortType": "DESC"
      }
    ]
  },
  {
    "indexName": "AGIDIndex",
    "indexList": [
      {
        "fieldName": "AGID",
        "sortType": "ASC"
      }
    ]
  }
],
"permissions": [
  {
    "role": "World",
    "rights": [
      "Read"
    ]
  },
  {
    "role": "Authenticated",
    "rights": [
      "Read",
      "Upsert",
      "Delete"
    ]
  },
  {
    "role": "Creator",
    "rights": [
      "Read",
      "Upsert",
      "Delete"
    ]
  },
  {
    "role": "Administrator",
    "rights": [
      "Read",
      "Upsert",
      "Delete"
    ]
  }
]
}
  1. 自动生成客户端侧工程引用的Pest实体对象(生成的是ts文件)
/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2024-2024. All rights reserved.
 * Generated by the CloudDB ObjectType compiler. DO NOT EDIT!
 */
import { cloudDatabase } from '@kit.CloudFoundationKit';

class Pest extends cloudDatabase.DatabaseObject {
  AGID: number;
  ID: string;
  Type: string;
  Img: string;
  PestName: string;
  PestDesc: string;
  PestCtrl: string;
  UpdateDate: Date;
  UserId: string;

  naturalbase_ClassName(): string {
    return 'Pest';
  }
}

export { Pest };

下一篇:使用cloudDatabase.DatabaseZone对象的upsert方法,保存数据到云数据库


更多关于HarmonyOS鸿蒙NEXT中病虫害云数据库存储区、对象类型、数据分析的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在鸿蒙NEXT中,病虫害云数据库采用分布式数据管理框架,存储区支持多设备协同访问。对象类型通过@Observed@ObjectLink装饰器实现数据双向绑定。数据分析依托分布式数据湖架构,提供实时计算和离线分析能力,支持SQL-like查询接口。数据同步采用增量推送机制,变更通知延迟低于500ms。存储引擎使用LSM树结构,写入吞吐量达10万QPS。安全方面实现TEE环境下的端到端加密,密钥轮换周期为24小时。

更多关于HarmonyOS鸿蒙NEXT中病虫害云数据库存储区、对象类型、数据分析的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS NEXT中实现病虫害云数据库存储方案的设计很规范。关于您展示的代码配置,我有以下技术分析:

  1. 存储区配置正确:
  • 使用db-config.json指定了NMSS存储区和中国区(CN)存储位置
  • 这种配置适用于国内业务场景
  1. 对象类型定义完整:
  • Pest对象包含病虫害核心字段(名称、描述、防治方法等)
  • 主键AGID设置合理
  • 索引配置优化了按日期和AGID的查询性能
  • 权限控制分层清晰(公开读、认证用户可写)
  1. 自动生成的TS实体类:
  • 继承自cloudDatabase.DatabaseObject
  • 包含所有定义字段的类型声明
  • 实现了必要的naturalbase_ClassName方法

建议后续开发时:

  1. 考虑添加数据版本控制字段
  2. 对于图片字段(Img),建议存储OSS地址而非直接存base64
  3. 可增加病虫害分类的枚举类型约束

这个设计方案已经具备完整的CRUD操作基础,下一步通过DatabaseZone进行数据操作即可。

回到顶部