Files
AIclinicalresearch/docs/_templates/数据库设计-模板.md
HaHafeng 1b53ab9d52 feat(aia): Complete AIA V2.0 with universal streaming capabilities
Major Changes:
- Add StreamingService with OpenAI Compatible format
- Upgrade Chat component V2 with Ant Design X integration
- Implement AIA module with 12 intelligent agents
- Update API routes to unified /api/v1 prefix
- Update system documentation

Backend (~1300 lines):
- common/streaming: OpenAI Compatible adapter
- modules/aia: 12 agents, conversation service, streaming integration
- Update route versions (RVW, PKB to v1)

Frontend (~3500 lines):
- modules/aia: AgentHub + ChatWorkspace (100% prototype restoration)
- shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook
- Update API endpoints to v1

Documentation:
- AIA module status guide
- Universal capabilities catalog
- System overview updates
- All module documentation sync

Tested: Stream response verified, authentication working
Status: AIA V2.0 core completed (85%)
2026-01-14 19:15:01 +08:00

233 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# [璅<E79285><E288AA>滨妍] - <20>唳旿摨栞挽霈?
> **Schema嚗?* `xxx_schema`
> **銵冽㺭<E586BD>𧶏<EFBFBD>** X銝?
> **靘肽<E99D98>嚗?* platform_schema.users嚗<73><E59A97><EFBFBD><EFBFBD>
> **<2A><><EFBFBD>擧凒<E693A7><EFBFBD>** YYYY-MM-DD
---
## <20><> Schema霂湔<E99C82>
**Schema<6D>𥕦遣嚗?*
```sql
CREATE SCHEMA IF NOT EXISTS xxx_schema;
```
**<EFBFBD>諹提<EFBFBD><EFBFBD>凒嚗?*
- <20><EFBFBD>1<EFBFBD><EFBFBD><E8A9A8>唳旿
- <20><EFBFBD>2<EFBFBD><EFBFBD><E8A9A8>唳旿
- ...
**靘肽<E99D98><E882BD>喟頂嚗?*
- 靘肽<E99D98> `platform_schema.users`<EFBFBD><EFBFBD>瑚縑<EFBFBD><EFBFBD>
- 靘肽<E99D98> `platform_schema.xxx`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
---
## <20><> ER<45><EFBFBD><E6A998><EFBFBD><EFBFBD>
```
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<EFBFBD>? users (憭㚚<E686AD>) <20>?
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<20>?1:N
<20>?
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<EFBFBD>? 銝餉” <20>?
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<20>?1:N
<20>?
<EFBFBD>𢞖<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
<EFBFBD>? 摮鞱” <20>?
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
```
---
## <20><> 銵函<E98AB5><E587BD><EFBFBD>挽霈?
### 1. xxx_table_name嚗<65><EFBFBD>讛膩嚗?
**<EFBFBD><EFBFBD><EFBFBD>** 蝞<><EFBFBD><EFBFBD>舘”<E88898><E2809D><EFBFBD>?
**摮埈挾霂湔<E99C82>嚗?*
```sql
CREATE TABLE xxx_schema.xxx_table_name (
-- 銝駁睸
id SERIAL PRIMARY KEY,
-- 憭㚚睸
user_id INTEGER REFERENCES platform_schema.users(id) ON DELETE CASCADE,
-- 銝𡁜𦛚摮埈挾
field_name VARCHAR(200) NOT NULL,
description TEXT,
status VARCHAR(20) DEFAULT 'active',
-- <20>園𡢿<E59C92><EFBFBD><EFBFBD>◆嚗?
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW(),
-- 蝝<E89D9D>
INDEX idx_xxx_user_id (user_id),
INDEX idx_xxx_status (status)
);
```
**摮埈挾霂西圾嚗?*
| 摮埈挾<E59F88>?| 蝐餃<E89D90> | 蝥行<E89DA5> | 霂湔<E99C82> |
|--------|------|------|------|
| id | SERIAL | PK | 銝駁睸 |
| user_id | INTEGER | FK, NOT NULL | <20><EFBFBD>ID |
| field_name | VARCHAR(200) | NOT NULL | 摮埈挾霂湔<E99C82> |
| description | TEXT | - | 霂衣<E99C82><E8A1A3>讛膩 |
| status | VARCHAR(20) | DEFAULT 'active' | <20><EFBFBD><E59786><EFBFBD>active/inactive/deleted |
| created_at | TIMESTAMP | NOT NULL | <20>𥕦遣<F0A595A6>園𡢿 |
| updated_at | TIMESTAMP | NOT NULL | <20>湔鰵<E6B994>園𡢿 |
**銝𡁜𦛚閫<F0A69B9A><E996AB>嚗?*
- 瘥譍葵<E8AD8D><EFBFBD><E586BD><EFBFBD>憭𡁜<E686AD>撱旗銝芾扇敶?
- status摮埈挾<E59F88><E68CBE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>active, inactive, deleted
- 頧臬<E9A0A7><E887AC><EFBFBD>銝滨<E98A9D><E6BBA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6ADB9>芯耨<E88AAF>零tatus銝榛eleted
---
### 2. xxx_table_name_2嚗<32>洵鈭䔶葵銵剁<E98AB5>
<EFBFBD><EFBFBD>憭滢<EFBFBD><EFBFBD><EFBFBD>蝏𤘪<EFBFBD>嚗?
---
## <20><><E89D9D>霈曇恣
### <20><EFBFBD><E89D9D>
```sql
-- <20><EFBFBD>ID蝝<E89D9D><EFBFBD><E59A97><EFBFBD><EFBFBD>憿餃<E686BF><E89D9D>嚗?
CREATE INDEX idx_xxx_user_id ON xxx_schema.xxx_table_name(user_id);
-- <20><EFBFBD><E59786>揣撘𤏪<E69298>撣貊鍂蝑偦<E89D91><EFBFBD>畾蛛<E795BE>
CREATE INDEX idx_xxx_status ON xxx_schema.xxx_table_name(status);
-- <20>𥕦遣<F0A595A6>園𡢿蝝<E89D9D><EFBFBD><EFBFBD><EFBFBD>摨誩<E691A8>畾蛛<E795BE>
CREATE INDEX idx_xxx_created_at ON xxx_schema.xxx_table_name(created_at DESC);
```
### 憭滚<E686AD><E89D9D>
```sql
-- <20><EFBFBD>+<2B><EFBFBD><E59786><EFBFBD><EFBFBD><EFBFBD>䰻霂?
CREATE INDEX idx_xxx_user_status ON xxx_schema.xxx_table_name(user_id, status);
```
---
## <20><> 憭㚚睸蝥行<E89DA5>
### 靘肽<E99D98><E882BD>喟頂
```sql
-- 靘肽<E99D98><E882BD><EFBFBD>銵?
ALTER TABLE xxx_schema.xxx_table_name
ADD CONSTRAINT fk_xxx_users
FOREIGN KEY (user_id) REFERENCES platform_schema.users(id)
ON DELETE CASCADE; -- <20><EFBFBD><E586BD>𣳇膄<F0A3B387>嗥漣<E597A5>𥪜<EFBFBD><F0A5AA9C>?
-- 璅<E79285><E288AA><EFBFBD><EFBFBD><EFBFBD>?
ALTER TABLE xxx_schema.child_table
ADD CONSTRAINT fk_child_parent
FOREIGN KEY (parent_id) REFERENCES xxx_schema.parent_table(id)
ON DELETE CASCADE;
```
### 憭㚚睸蝑𣇉裦
- <20>?**ON DELETE CASCADE**嚗𡁶鍂<F0A181B6><EFBFBD><E79195>斗𧒄嚗諹䌊<E8ABB9><EFBFBD><E585B8><EFBFBD><E69697><EFBFBD><E58CA7>娍㺭<E5A88D>?
- <20>𩤃<EFBFBD> **頝沒chema憭㚚睸**嚗𡁜蘨<F0A1819C><EFBFBD><E8B3A2>?platform_schema嚗䔶<E59A97><E494B6><EFBFBD><E8B3A2><EFBFBD>隞碶<E99A9E><E7A2B6>⊥芋<E28AA5>?
---
## <20><> <20>唳旿餈<E697BF>宏嚗<E5AE8F><EFBFBD><EFBFBD>
### <20><EFBFBD><E598A5>𡝗㺭<F0A19D97>?
```sql
-- 憒<><E68692><EFBFBD><EFBFBD><EFBFBD><E996AC>憪见<E686AA><E8A781>唳旿
INSERT INTO xxx_schema.xxx_table_name (field_name, status) VALUES
('蝷箔<EFBFBD>1', 'active'),
('蝷箔<EFBFBD>2', 'active');
```
### 餈<><EFBFBD>𡁏𧋦
```sql
-- 憒<><E68692><EFBFBD><EFBFBD><EFBFBD><E996AC><EFBFBD>扯”餈<E2809D><EFBFBD>唳旿
-- migrations/xxx_migration.sql
```
---
## <20><> <20>唳旿<E594B3><EFBFBD>隡?
| 銵典<E98AB5> | 憸<>摯霈啣<E99C88><E595A3>?| 憓鮋鵭<E9AE8B>笔漲 |
|------|-----------|---------|
| xxx_table_name | 10銝?撟?| 銝剔<E98A9D> |
| xxx_table_name_2 | 100銝?撟?| 擃?|
---
## <20>𩤃<EFBFBD> 瘜冽<E7989C>鈭钅★
**<EFBFBD><EFBFBD>隡睃<EFBFBD>嚗?*
- 憭扯”敹<E2809D>◆瘛餃<E7989B><E9A483><EFBFBD><EFBFBD>亥砭
- <20><EFBFBD>摮埈挾敹<E68CBE>◆瘛餃<E7989B><E89D9D>
- 摰𡁏<E691B0><EFBFBD><E79A9C>頧臬<E9A0A7><E887AC><EFBFBD><E696A4>唳旿
**摰匧<E691B0><E58CA7><EFBFBD>**
- <20>𤩺<EFBFBD>摮埈挾<E59F88><E68CBE><EFBFBD><E996AC><EFBFBD><E69296><EFBFBD>?
- <20><><EFBFBD><EFBFBD><E58CA7><EFBFBD>憿餅<E686BF> ON DELETE 蝑𣇉裦
- <20><EFBFBD>N+1<>亥砭<E4BAA5><EFBFBD>
**蝏湔擪<E6B994><EFBFBD>**
- 銵函<E98AB5><E587BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD>𡁏𧋦
- <20><EFBFBD><E6BBA9>䀹凒<E480B9><E58792><EFBFBD><E996AC>隞賣㺭<E8B3A3>?
---
## <20><> <20><EFBFBD><E8A9A8><EFBFBD>
**閫<><E996AB>嚗?*
- [<5B>唳旿摨栞挽霈∟<E99C88><E2889F><EFBFBD>(../../04-撘<><E69298>𤏸<EFBFBD><F0A48FB8>?01-<2D>唳旿摨栞挽霈∟<E99C88><E2889F>?md)
- [<EFBFBD>唳旿摨枏<EFBFBD><EFBFBD><EFBFBD>](../../04-撘<><E69298>𤏸<EFBFBD><F0A48FB8>?03-<2D>唳旿摨枏<E691A8><EFBFBD><EFBFBD>㦛.md)
**API霈曇恣嚗?*
- [<EFBFBD>祆芋<EFBFBD>嫎PI霈曇恣](./02-API霈曇恣.md)
---
**<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD><EFBFBD>** YYYY-MM-DD
**蝏湔擪鈭綽<E988AD>** <20><><EFBFBD>舀沲<E88880><E6B2B2><EFBFBD>