

# 鸟类知识科普AI应用
- 示例代码：http://git.fmode.cn:3000/fmode/agent-app/commit/be05c8a641cea514ac0af4d179320234c820d161
- 操作视频：

会议录制：脑控未来的快速会议
日期：2025-05-23 15:56:02
录制文件：https://meeting.tencent.com/wework/cloud-record/share?id=e166c306-530e-44ae-b6c3-88431350fa81&hide_more_btn=true&from=qywx

``` bash
mkdir -p src/modules/demo/bird
ng g component --standalone page-bird-list
ng g component --standalone page-bird-display
```

- 地址
    - tabs/demo/bird/list
    - tabs/demo/bird/display
``` ts
{
        path: 'demo/bird/list',
        canActivate: [TokenGuard],
        loadComponent: () =>
          import('../../modules/demo/bird/page-bird-list/page-bird-list.component').then((m) => m.PageBirdListComponent),
      },
      {
        path: 'demo/bird/display/:birdId',
        canActivate: [TokenGuard],
        loadComponent: () =>
          import('../../modules/demo/bird/page-bird-display/page-bird-display.component').then((m) => m.PageBirdListComponent),
      },
```

- 思考鸟类科普的列表页面，以及鸟类的范式数据
    - 参考：http://git.fmode.cn:3000/ljf123/ai-sport/src/master/docs/schema.md
        - 设计数据范式

设定要求 您是一名专业的数据库工程师，熟悉PostgreSQL和ParseServer。 请注意表名用大驼峰，字段小驼峰。 有预留字段：objectId、updatedAt、createdAt。 关于ParseServer中数据类的描述，字段的主要类型有： String => String Number => Number Bool => bool Array => JSON Array Object => JSON Object Date => Date File => Parse.File Pointer => other Parse.Object // 指针类型的字段不需要用xxxId形式命名，直接写xxx即可。 Relation => Parse.Relation Null => null GeoPoint => {latitude: 40.0, longitude: -30.0}

项目需求 鸟类专业知识科普的AI应用，鸟类表，鸟类的分类表，以及鸟类专业知识的应用经验，设计以上两张表。
期中鸟类表尽可能有丰富的参数字段，还需要有整体的描述字段

输出结果（UML类图） 请您帮我用plantuml的类图描述设计好的几张表及其关系

输出结果（信息结构图） 请您帮我用markmap格式表示上面的信息结构图

输出结果（SQL语句） 请您帮我用sql格式给我建表语句和测试数据插入语句，注意字段请使用小驼峰用""引起来。

``` markdown
以下是根据您的需求设计的PostgreSQL/ParseServer数据库表结构，使用PlantUML类图表示：

```plantuml
@startuml BirdDatabaseSchema

class Bird {
  + objectId: String [PK]
  + createdAt: Date
  + updatedAt: Date
  
  + commonName: String
  + scientificName: String
  + description: String
  + conservationStatus: String
  + avgWeight: Number
  + avgLength: Number
  + wingspan: Number
  + lifespan: Number
  + diet: String
  + habitat: String
  + migrationPattern: String
  + breedingSeason: String
  + clutchSize: Number
  + incubationPeriod: Number
  + vocalization: String
  + identificationTips: String
  + behaviorNotes: String
  + distributionRange: String
  + similarSpecies: JSON Array
  + images: JSON Array<Parse.File>
  + thumbnail: Parse.File
  + location: GeoPoint
  + taxonomy: Pointer<Taxonomy>
  + isEndangered: bool
  + isExtinct: bool
  + featured: bool
}

class Taxonomy {
  + objectId: String [PK]
  + createdAt: Date
  + updatedAt: Date
  
  + kingdom: String
  + phylum: String
  + class: String
  + order: String
  + family: String
  + genus: String
  + species: String
  + subspecies: String
  + scientificName: String
  + description: String
  + characteristics: JSON Array
  + evolutionaryHistory: String
  + relatedTaxa: JSON Array
}

class BirdExpertise {
  + objectId: String [PK]
  + createdAt: Date
  + updatedAt: Date
  
  + title: String
  + content: String
  + author: String
  + experienceLevel: String
  + applicationScenarios: JSON Array
  + bestPractices: String
  + equipmentRecommendations: JSON Array
  + seasonalityTips: String
  + locationTips: String
  + relatedBirds: JSON Array<Pointer<Bird>>
  + featuredImage: Parse.File
  + isVerified: bool
  + references: JSON Array
}

Bird "1" -- "1" Taxonomy : belongs to >
BirdExpertise "n" -- "n" Bird : references >

note top of Bird: 鸟类主表\n包含全面的鸟类信息\n包括生态特征、形态特征\n和行为特征等丰富字段

note bottom of Taxonomy: 鸟类分类表\n按照生物分类学标准\n记录鸟类的分类信息

note right of BirdExpertise: 鸟类专业知识表\n记录观鸟技巧、研究经验\n和保护实践等专业知识

@enduml
```

设计说明：
1. **Bird表**：包含全面的鸟类信息，包括：
   - 基础信息（名称、描述）
   - 物理特征（体重、长度、翼展）
   - 生态信息（食性、栖息地）
   - 行为特征（迁徙模式、繁殖季节）
   - 多媒体资料（图片、缩略图）
   - 地理位置信息
   - 分类关联（指向Taxonomy表）

2. **Taxonomy表**：按照生物分类学标准设计，包含：
   - 完整的分类层级（界门纲目科属种）
   - 分类特征描述
   - 进化历史信息

3. **BirdExpertise表**：存储专业知识应用经验，包括：
   - 专业知识内容
   - 应用场景
   - 最佳实践
   - 相关鸟类关联
   - 经验等级和验证状态

关系说明：
- 一只鸟类对应一个分类条目（1:1）
- 一个专业知识可以关联多个鸟类，反之亦然（n:m）
```

- 根据表结构，创建测试数据，并进行导入

> {{ncloud.ts复制}}{{UML描述复制}}请您根据以上三张表的内容，帮我生成大量真实鸟类的数据作为测试。帮我用CloudObject实现导入函数将三类数据的数组保存。


- 美化每个页面
    - 数据结构，还有CloudObject .get取属性的用法描述清晰
    - list页面内容复制
    - 指导AI用ionic angular 完成页面美化工作

- 美化鸟类详情页
> 以上是鸟信息结构，请帮我用ionic angular美化鸟类展示的详情页。其中CloudObject需要用.get获取属性。
> 以下是我已经完成的基本结构