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%)
510 lines
11 KiB
Markdown
510 lines
11 KiB
Markdown
# <20>唳旿摨栞挽霈∟<E99C88><E2889F>?
|
||
|
||
> **<2A><>𧋦嚗?* v2.0
|
||
> **<2A><><EFBFBD>擧凒<E693A7>堆<EFBFBD>** 2025-11-06
|
||
> **<2A>唳旿摨橒<E691A8>** PostgreSQL 15+
|
||
> **ORM嚗?* Prisma
|
||
> **<2A><>鍂<EFBFBD><E98D82>凒嚗?* 撟喳蝱撅?+ <20>賢<EFBFBD>撅?+ 銝𡁜𦛚璅∪<E79285>撅?
|
||
|
||
---
|
||
|
||
## <20><> <20>詨<EFBFBD><E8A9A8>笔<EFBFBD>
|
||
|
||
<EFBFBD>祈<EFBFBD><EFBFBD><EFBFBD>糓<EFBFBD><EFBFBD><EFBFBD>㗇芋<EFBFBD>埈㺭<EFBFBD>桀<EFBFBD>霈曇恣<EFBFBD><EFBFBD>抅蝖<EFBFBD>閫<EFBFBD><EFBFBD>嚗<EFBFBD><EFBFBD>憿颱艇<EFBFBD>潮<EFBFBD>摰<EFBFBD><EFBFBD>?
|
||
|
||
**霈曇恣<E69B87>笔<EFBFBD>嚗?*
|
||
- <20>?<3F>萄儐蝚砌<E89D9A><E7A08C><EFBFBD><EFBFBD>嚗?NF嚗?
|
||
- <20>?雿輻鍂SERIAL雿靝蛹銝駁睸嚗<E79DB8>㟲<EFBFBD>啗䌊憓痹<E68693><E797B9>扯<EFBFBD><E689AF>游末嚗?
|
||
- <20>?<3F><><EFBFBD>㕑”<E39591><E2809D>鉄created_at<61>吴pdated_at<61>園𡢿<E59C92>?
|
||
- <20>?<3F>滩<EFBFBD>銵其蝙<E585B6>刻蔓<E588BB>𣳇膄嚗<E88684><E59A97><EFBFBD>羮eleted_at摮埈挾嚗?
|
||
- <20>?憭㚚睸蝥行<E89DA5>雿輻鍂ON DELETE CASCADE
|
||
- <20>?<3F>𤩺<EFBFBD>摮埈挾<E59F88>惩<EFBFBD>摮睃<E691AE>嚗<EFBFBD><E59A97><EFBFBD><EFBFBD>蝙<EFBFBD>灸crypt嚗?
|
||
|
||
---
|
||
|
||
## <20><>儭?Schema<6D>𠉛氖蝑𣇉裦 潃?<3F><><EFBFBD>滩<EFBFBD>
|
||
|
||
### 銝箔<E98A9D>銋<EFBFBD><E98A8B>閬<EFBFBD>chema<6D>𠉛氖
|
||
|
||
**<EFBFBD>詨<EFBFBD><EFBFBD>笔<EFBFBD>嚗?*
|
||
1. <20>?**璅∪<E79285><E288AA>祉<EFBFBD><E7A589>?*嚗𡁏<E59A97>銝芯<E98A9D><E88AAF>⊥芋<E28AA5>埈<EFBFBD><E59F88>祉<EFBFBD><E7A589><EFBFBD>chema
|
||
2. <20>?**<2A>舀<EFBFBD><E88880>祉<EFBFBD><E7A589>函蔡**嚗𡁜虾隞亙<E99A9E><E4BA99>砍紡<E7A08D>箸<EFBFBD>銝芣芋<E88AA3>㛖<EFBFBD><E39B96>唳旿
|
||
3. <20>?**<2A>舀<EFBFBD><E88880>祉<EFBFBD><E7A589><EFBFBD><EFBFBD>?*嚗𡁜虾隞亙<E99A9E><E4BA99>砌漱隞䀹<E99A9E>銝芣芋<E88AA3>?
|
||
4. <20>?**<2A><><EFBFBD><EFBFBD>𠉛氖**嚗𡁜虾隞乩蛹銝滚<E98A9D>Schema霈曄蔭銝滚<E98A9D><E6BB9A><EFBFBD><EFBFBD>
|
||
5. <20>?**<2A>踹<EFBFBD><E8B8B9>賢<EFBFBD><E8B3A2>脩<EFBFBD>**嚗帋<E59A97><E5B88B>峕芋<E5B395>堒虾隞交<E99A9E><E4BAA4>詨<EFBFBD><E8A9A8><EFBFBD>”<EFBFBD>?
|
||
|
||
### Schema<6D>賢<EFBFBD>閫<EFBFBD><E996AB>
|
||
|
||
```
|
||
platform_schema # 撟喳蝱<E596B3>箇<EFBFBD>撅<EFBFBD><E69285><EFBFBD>典<EFBFBD><E585B8>曹澈嚗?
|
||
aia_schema # AI<41>箄<EFBFBD><E7AE84>桃<EFBFBD>
|
||
asl_schema # AI<41>箄<EFBFBD><E7AE84><EFBFBD>讃
|
||
pkb_schema # 銝芯犖<E88AAF>亥<EFBFBD>摨?
|
||
dc_schema # <20>唳旿皜<E697BF><E79A9C><EFBFBD>渡<EFBFBD>
|
||
ssa_schema # <20>箄<EFBFBD>蝏蠘恣<E8A098><E681A3><EFBFBD>
|
||
st_schema # 蝏蠘恣<E8A098><E681A3><EFBFBD>撌亙<E6928C>
|
||
rvw_schema # 蝔蹂辣摰⊥䰻蝟餌<E89D9F>
|
||
```
|
||
|
||
### Schema<6D>𥕦遣
|
||
|
||
```sql
|
||
-- <20>𥕦遣Schema
|
||
CREATE SCHEMA IF NOT EXISTS platform_schema;
|
||
CREATE SCHEMA IF NOT EXISTS asl_schema;
|
||
CREATE SCHEMA IF NOT EXISTS aia_schema;
|
||
-- ...<2E>嗡<EFBFBD>Schema
|
||
```
|
||
|
||
### 頝沒chema靘肽<E99D98>閫<EFBFBD><E996AB> 潃?敹<>◆<EFBFBD>萄<EFBFBD>
|
||
|
||
**<EFBFBD><EFBFBD>捂<EFBFBD><EFBFBD><EFBFBD>韏吔<EFBFBD>**
|
||
```sql
|
||
-- <20>?<3F><>捂嚗帋<E59A97><E5B88B>⊥芋<E28AA5>堒<EFBFBD><E5A092>私latform_schema
|
||
CREATE TABLE asl_schema.literature_projects (
|
||
id SERIAL PRIMARY KEY,
|
||
user_id INTEGER REFERENCES platform_schema.users(id) ON DELETE CASCADE,
|
||
...
|
||
);
|
||
|
||
-- <20>?<3F><>捂嚗𡁻<E59A97>𡁶鍂<F0A181B6>賢<EFBFBD>撘閧鍂platform_schema
|
||
CREATE TABLE platform_schema.llm_usage (
|
||
id SERIAL PRIMARY KEY,
|
||
user_id INTEGER REFERENCES platform_schema.users(id) ON DELETE CASCADE,
|
||
...
|
||
);
|
||
```
|
||
|
||
**蝳<>迫<EFBFBD><E8BFAB><EFBFBD>韏吔<E99F8F>**
|
||
```sql
|
||
-- <20>?蝳<>迫嚗帋<E59A97><E5B88B>⊥芋<E28AA5>𦯀<EFBFBD><F0A6AF80>港<EFBFBD><E6B8AF>詨<EFBFBD><E8A9A8>?
|
||
CREATE TABLE ssa_schema.analysis_projects (
|
||
id SERIAL PRIMARY KEY,
|
||
-- <20>躰秤嚗<E7A7A4><E59A97><EFBFBD>賢<EFBFBD><E8B3A2>典<EFBFBD>隞碶<E99A9E><E7A2B6>⊥芋<E28AA5>?
|
||
literature_project_id INTEGER REFERENCES asl_schema.literature_projects(id)
|
||
);
|
||
|
||
-- <20>?蝳<>迫嚗䮝latform_schema<6D>滚<EFBFBD>靘肽<E99D98>銝𡁜𦛚璅∪<E79285>
|
||
CREATE TABLE platform_schema.users (
|
||
id SERIAL PRIMARY KEY,
|
||
-- <20>躰秤嚗<E7A7A4>latform_schema銝滩<E98A9D>靘肽<E99D98>銝𡁜𦛚璅∪<E79285>
|
||
current_project_id INTEGER REFERENCES asl_schema.literature_projects(id)
|
||
);
|
||
```
|
||
|
||
**甇<>&<EFBFBD>𡁏<EFBFBD>嚗?*
|
||
```
|
||
頝冽芋<EFBFBD>埈㺭<EFBFBD>桀<EFBFBD><EFBFBD>𥪜銁摨𠉛鍂撅<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝滚銁<EFBFBD>唳旿摨枏<EFBFBD>嚗?
|
||
|
||
<EFBFBD>孵<EFBFBD>1嚗𡁻<EFBFBD>朞<EFBFBD>user_id<EFBFBD>唾<EFBFBD>
|
||
- 銝支葵璅∪<E79285><E288AA>賢<EFBFBD><E8B3A2>私latform_schema.users
|
||
- <20>典<EFBFBD><E585B8>典<EFBFBD><E585B8>朞<EFBFBD>user_id<69>亥砭銝支葵璅∪<E79285><E288AA><EFBFBD>㺭<EFBFBD>?
|
||
- <20>典<EFBFBD><E585B8>典<EFBFBD>蝏<EFBFBD><E89D8F><EFBFBD>唳旿
|
||
|
||
<EFBFBD>孵<EFBFBD>2嚗𡁜<EFBFBD><EFBFBD>其<EFBFBD><EFBFBD>!D摮㛖泵銝?
|
||
- <20>刻”銝剖<E98A9D><E58996>典<EFBFBD>隞𡝗芋<F0A19D97>㛖<EFBFBD>銝𡁜𦛚ID嚗ĀARCHAR嚗?
|
||
- 銝滚遣蝡见<E89DA1><E8A781>桀<EFBFBD>蝟?
|
||
- <20>典<EFBFBD><E585B8>典<EFBFBD>撉諹<E69289>ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> <20>賢<EFBFBD>閫<EFBFBD><E996AB>
|
||
|
||
### 銵典𦶢<E585B8>?
|
||
|
||
**閫<><E996AB>嚗?*
|
||
- 撠誩<E692A0>摮埈<E691AE>
|
||
- 銝见<E98A9D>蝥踹<E89DA5><E8B8B9>?
|
||
- 憭齿㺭敶W<E695B6>
|
||
- Schema<6D>滨<EFBFBD>嚗<EFBFBD>䰻霂X𧒄雿輻鍂嚗?
|
||
|
||
**蝷箔<E89DB7>嚗?*
|
||
```sql
|
||
-- <20>?甇<>&
|
||
CREATE TABLE asl_schema.literature_projects (...);
|
||
CREATE TABLE platform_schema.users (...);
|
||
CREATE TABLE pkb_schema.knowledge_bases (...);
|
||
|
||
-- <20>?<3F>躰秤
|
||
CREATE TABLE ASLSchema.LiteratureProject (...); -- 撽澆陸
|
||
CREATE TABLE asl_schema.project (...); -- <20>閙㺭
|
||
CREATE TABLE literature-projects (...); -- 雿輻鍂餈𧼮<E9A488>蝚?
|
||
```
|
||
|
||
### 摮埈挾<E59F88>賢<EFBFBD>
|
||
|
||
**閫<><E996AB>嚗?*
|
||
- 撠誩<E692A0>摮埈<E691AE>
|
||
- 銝见<E98A9D>蝥踹<E89DA5><E8B8B9>?
|
||
- 霂凋<E99C82>皜<EFBFBD>苊
|
||
|
||
**蝷箔<E89DB7>嚗?*
|
||
```sql
|
||
-- <20>?甇<>&
|
||
user_id
|
||
created_at
|
||
project_name
|
||
is_active
|
||
|
||
-- <20>?<3F>躰秤
|
||
userId -- 撽澆陸
|
||
createdat -- 瘝⊥<E7989D>銝见<E98A9D>蝥?
|
||
prjName -- 蝻拙<E89DBB>銝齿<E98A9D><E9BDBF>?
|
||
```
|
||
|
||
### 蝝W<E89D9D><EFBCB7>賢<EFBFBD>
|
||
|
||
**閫<><E996AB>嚗?* `idx_銵典<E98AB5>_摮埈挾<E59F88>崾
|
||
|
||
**蝷箔<E89DB7>嚗?*
|
||
```sql
|
||
-- <20>?甇<>&
|
||
CREATE INDEX idx_users_email ON platform_schema.users(email);
|
||
CREATE INDEX idx_projects_user_id ON asl_schema.literature_projects(user_id);
|
||
CREATE INDEX idx_projects_user_status ON asl_schema.literature_projects(user_id, status);
|
||
|
||
-- <20>?<3F>躰秤
|
||
CREATE INDEX user_email_idx ... -- 憿箏<E686BF><E7AE8F>躰秤
|
||
CREATE INDEX index_on_email ... -- <20>滨妍銝齿<E98A9D><E9BDBF>?
|
||
```
|
||
|
||
### 憭㚚睸<E39A9A>賢<EFBFBD>
|
||
|
||
**閫<><E996AB>嚗?* `fk_銵典<EFBFBD>_<EFBFBD>唾<EFBFBD>銵典<EFBFBD>`
|
||
|
||
**蝷箔<E89DB7>嚗?*
|
||
```sql
|
||
-- <20>?甇<>&
|
||
CONSTRAINT fk_projects_users
|
||
FOREIGN KEY (user_id) REFERENCES platform_schema.users(id);
|
||
|
||
CONSTRAINT fk_items_projects
|
||
FOREIGN KEY (project_id) REFERENCES asl_schema.literature_projects(id);
|
||
|
||
-- <20>?<3F>躰秤
|
||
CONSTRAINT user_fk ... -- <20>滨妍銝齿<E98A9D><E9BDBF>?
|
||
CONSTRAINT foreign_key_users ... -- 憭芷鵭
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> <20>𡁶鍂摮埈挾 潃?敹<>◆<EFBFBD><E29786>鉄
|
||
|
||
### <20><><EFBFBD>㕑”敹<E2809D>◆<EFBFBD><E29786>鉄
|
||
|
||
```sql
|
||
CREATE TABLE xxx_schema.table_name (
|
||
-- 銝駁睸嚗<E79DB8><E59A97>憿鳴<E686BF>
|
||
id SERIAL PRIMARY KEY,
|
||
|
||
-- 銝𡁜𦛚摮埈挾
|
||
...
|
||
|
||
-- <20>園𡢿<E59C92>喉<EFBFBD>敹<EFBFBD>◆嚗?
|
||
created_at TIMESTAMP DEFAULT NOW() NOT NULL,
|
||
updated_at TIMESTAMP DEFAULT NOW() NOT NULL
|
||
);
|
||
```
|
||
|
||
### <20>滩<EFBFBD>銵典<E98AB5><E585B8><EFBFBD>鉄嚗<E98984>蔓<EFBFBD>𣳇膄嚗?
|
||
|
||
```sql
|
||
CREATE TABLE xxx_schema.important_table (
|
||
id SERIAL PRIMARY KEY,
|
||
|
||
-- 銝𡁜𦛚摮埈挾
|
||
...
|
||
|
||
-- 頧臬<E9A0A7><E887AC>文<EFBFBD>畾蛛<E795BE><E89B9B>舫<EFBFBD>㚁<EFBFBD><E39A81>滩<EFBFBD>銵典遣霈格溶<E6A0BC>𩤃<EFBFBD>
|
||
deleted_at TIMESTAMP,
|
||
|
||
-- <20>園𡢿<E59C92>喉<EFBFBD>敹<EFBFBD>◆嚗?
|
||
created_at TIMESTAMP DEFAULT NOW() NOT NULL,
|
||
updated_at TIMESTAMP DEFAULT NOW() NOT NULL
|
||
);
|
||
|
||
-- <20>亥砭<E4BAA5>嗉<EFBFBD>皛文歇<E69687>𣳇膄<F0A3B387>唳旿
|
||
SELECT * FROM xxx_schema.important_table WHERE deleted_at IS NULL;
|
||
```
|
||
|
||
### <20>冽<EFBFBD><E586BD>唾<EFBFBD>銵典<E98AB5>憿餃<E686BF><E9A483>?
|
||
|
||
```sql
|
||
CREATE TABLE xxx_schema.user_related_table (
|
||
id SERIAL PRIMARY KEY,
|
||
|
||
-- <20>冽<EFBFBD>憭㚚睸嚗<E79DB8><E59A97>憿鳴<E686BF>
|
||
user_id INTEGER REFERENCES platform_schema.users(id) ON DELETE CASCADE NOT NULL,
|
||
|
||
-- 銝𡁜𦛚摮埈挾
|
||
...
|
||
|
||
-- <20>園𡢿<E59C92>喉<EFBFBD>敹<EFBFBD>◆嚗?
|
||
created_at TIMESTAMP DEFAULT NOW() NOT NULL,
|
||
updated_at TIMESTAMP DEFAULT NOW() NOT NULL
|
||
);
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> 蝝W<E89D9D>霈曇恣閫<E681A3><E996AB>
|
||
|
||
### 敹<>◆瘛餃<E7989B>蝝W<E89D9D><EFBCB7><EFBFBD><EFBFBD>畾?
|
||
|
||
**1. 銝駁睸**
|
||
```sql
|
||
-- <20>芸𢆡<E88AB8>𥕦遣嚗峕<E59A97><E5B395><EFBFBD><EFBFBD>见𢆡瘛餃<E7989B>
|
||
id SERIAL PRIMARY KEY
|
||
```
|
||
|
||
**2. 憭㚚睸摮埈挾**
|
||
```sql
|
||
-- 敹<>◆瘛餃<E7989B>嚗峕<E59A97>擃𧁓OIN<49>扯<EFBFBD>
|
||
CREATE INDEX idx_projects_user_id ON asl_schema.literature_projects(user_id);
|
||
```
|
||
|
||
**3. 撣貊鍂<E8B28A>亥砭摮埈挾**
|
||
```sql
|
||
-- status嚗<73>𠶖<EFBFBD><F0A0B696><EFBFBD>畾蛛<E795BE>撣貊鍂鈭竝HERE嚗?
|
||
CREATE INDEX idx_projects_status ON asl_schema.literature_projects(status);
|
||
|
||
-- created_at嚗<74>𧒄<EFBFBD>游<EFBFBD>畾蛛<E795BE>撣貊鍂鈭擧<E988AD>摨𧶏<E691A8>
|
||
CREATE INDEX idx_projects_created_at ON asl_schema.literature_projects(created_at DESC);
|
||
```
|
||
|
||
**4. <20>臭<EFBFBD>蝥行<E89DA5>摮埈挾**
|
||
```sql
|
||
-- email蝑匧𣈲銝<F0A388B2>摮埈挾
|
||
CREATE UNIQUE INDEX idx_users_email ON platform_schema.users(email);
|
||
```
|
||
|
||
### 憭滚<E686AD>蝝W<E89D9D>
|
||
|
||
**閫<><E996AB>嚗?*
|
||
- 擃㗛<E69383>蝏<EFBFBD><E89D8F><EFBFBD>亥砭雿輻鍂憭滚<E686AD>蝝W<E89D9D>
|
||
- <20><>撣豢䰻霂Y<E99C82>摮埈挾<E59F88>曉銁<E69B89>漤𢒰
|
||
- 憭滚<E686AD>蝝W<E89D9D><EFBCB7><EFBFBD>憭?銝芸<E98A9D>畾?
|
||
|
||
**蝷箔<E89DB7>嚗?*
|
||
```sql
|
||
-- <20>?甇<>&嚗鮁ser_id + status 蝏<><E89D8F><EFBFBD>亥砭
|
||
CREATE INDEX idx_projects_user_status
|
||
ON asl_schema.literature_projects(user_id, status);
|
||
|
||
-- <20>臭誑隡睃<E99AA1>隞乩<E99A9E><E4B9A9>亥砭嚗?
|
||
-- WHERE user_id = ? AND status = ?
|
||
-- WHERE user_id = ? 嚗<>蘨<EFBFBD>典<EFBFBD>蝻<EFBFBD>嚗?
|
||
|
||
-- <20>?<3F>躰秤嚗𡁜<E59A97>畾菔<E795BE>憭?
|
||
CREATE INDEX idx_projects_complex
|
||
ON asl_schema.literature_projects(user_id, status, created_at, updated_at);
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> 憭㚚睸蝥行<E89DA5>閫<EFBFBD><E996AB>
|
||
|
||
### ON DELETE蝑𣇉裦
|
||
|
||
**閫<><E996AB>嚗?*
|
||
```sql
|
||
-- <20>冽<EFBFBD><E586BD>𣳇膄<F0A3B387>塚<EFBFBD>蝥扯<E89DA5><E689AF>𣳇膄<F0A3B387>唾<EFBFBD><E594BE>唳旿
|
||
FOREIGN KEY (user_id)
|
||
REFERENCES platform_schema.users(id)
|
||
ON DELETE CASCADE;
|
||
|
||
-- <20>嗉扇敶訫<E695B6><E8A8AB>斗𧒄嚗𣬚漣<F0A3AC9A>𥪜<EFBFBD><F0A5AA9C>文<EFBFBD>霈啣<E99C88>
|
||
FOREIGN KEY (project_id)
|
||
REFERENCES asl_schema.literature_projects(id)
|
||
ON DELETE CASCADE;
|
||
|
||
-- <20>寞<EFBFBD><E5AF9E><EFBFBD><EFBFBD>嚗帋<E59A97><E5B88B>賢<EFBFBD><E8B3A2>?
|
||
FOREIGN KEY (parent_id)
|
||
REFERENCES xxx_schema.parent_table(id)
|
||
ON DELETE RESTRICT; -- <20>匧<EFBFBD>霈啣<E99C88><E595A3>嗥<EFBFBD>甇W<E79487><EFBCB7>?
|
||
```
|
||
|
||
### 憭㚚睸蝝W<E89D9D>
|
||
|
||
**閫<><E996AB>嚗?* <20><><EFBFBD>匧<EFBFBD><E58CA7>桀<EFBFBD>憿餅溶<E9A485>删揣撘?
|
||
|
||
```sql
|
||
-- <20>𥕦遣憭㚚睸
|
||
ALTER TABLE asl_schema.literature_items
|
||
ADD CONSTRAINT fk_items_projects
|
||
FOREIGN KEY (project_id) REFERENCES asl_schema.literature_projects(id)
|
||
ON DELETE CASCADE;
|
||
|
||
-- 敹<>◆瘛餃<E7989B>蝝W<E89D9D>
|
||
CREATE INDEX idx_items_project_id ON asl_schema.literature_items(project_id);
|
||
```
|
||
|
||
---
|
||
|
||
## <20>?<3F>扯<EFBFBD>隡睃<E99AA1>閫<EFBFBD><E996AB>
|
||
|
||
### 憭扯”<E689AF><E2809D>躹嚗<E8BAB9>虾<EFBFBD>㚁<EFBFBD>
|
||
|
||
**<2A><>鍂<EFBFBD>箸艶嚗?* 撟游<E6929F><E6B8B8>?> 100銝<30>扇敶?
|
||
|
||
```sql
|
||
-- <20>㗇<EFBFBD><E39787><EFBFBD>躹嚗<E8BAB9><E59A97>llm_usage銵剁<E98AB5>
|
||
CREATE TABLE platform_schema.llm_usage (
|
||
id SERIAL,
|
||
user_id INTEGER NOT NULL,
|
||
created_at TIMESTAMP NOT NULL,
|
||
...
|
||
) PARTITION BY RANGE (created_at);
|
||
|
||
-- <20>𥕦遣<F0A595A6><E981A3>躹
|
||
CREATE TABLE platform_schema.llm_usage_2025_11
|
||
PARTITION OF platform_schema.llm_usage
|
||
FOR VALUES FROM ('2025-11-01') TO ('2025-12-01');
|
||
```
|
||
|
||
### <20>唳旿敶埝﹝蝑𣇉裦
|
||
|
||
```sql
|
||
-- <20><>蟮<EFBFBD>唳旿敶埝﹝嚗<EFB99D><E59A97>1撟游<E6929F><E6B8B8><EFBFBD>𠯫敹梹<E695B9>
|
||
CREATE TABLE platform_schema.admin_logs_archive (
|
||
LIKE platform_schema.admin_logs INCLUDING ALL
|
||
);
|
||
|
||
-- 摰𡁏<E691B0>敶埝﹝
|
||
INSERT INTO platform_schema.admin_logs_archive
|
||
SELECT * FROM platform_schema.admin_logs
|
||
WHERE created_at < NOW() - INTERVAL '1 year';
|
||
|
||
DELETE FROM platform_schema.admin_logs
|
||
WHERE created_at < NOW() - INTERVAL '1 year';
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> 摰匧<E691B0>閫<EFBFBD><E996AB>
|
||
|
||
### <20>𤩺<EFBFBD>摮埈挾<E59F88>惩<EFBFBD>
|
||
|
||
```sql
|
||
-- 撖<><E69296>摮埈挾
|
||
password VARCHAR(255) NOT NULL -- 雿輻鍂bcrypt<70>惩<EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>典<EFBFBD>撣<EFBFBD><E692A3>?
|
||
|
||
-- API Key摮埈挾
|
||
api_key_encrypted TEXT NOT NULL -- 雿輻鍂AES-256<35>惩<EFBFBD>
|
||
|
||
-- 銝芯犖<E88AAF>𤩺<EFBFBD>靽⊥<E99DBD>
|
||
phone_encrypted VARCHAR(255) -- <20>𧢲㦤<F0A7A2B2>瑕<EFBFBD>撖?
|
||
id_card_encrypted VARCHAR(255) -- 頨思遢霂<E981A2>噡<EFBFBD>惩<EFBFBD>
|
||
```
|
||
|
||
### <20>唳旿<E594B3>望<EFBFBD>
|
||
|
||
```sql
|
||
-- <20>亙<EFBFBD>銝凋<E98A9D>霈啣<E99C88><E595A3>𤩺<EFBFBD>摮埈挾
|
||
-- 撘<><E69298>?瘚贝<E7989A><E8B49D>臬<EFBFBD>雿輻鍂<E8BCBB>望<EFBFBD><E69C9B>唳旿
|
||
UPDATE platform_schema.users
|
||
SET
|
||
email = CONCAT('user', id, '@example.com'),
|
||
phone = '138****0000'
|
||
WHERE environment = 'development';
|
||
```
|
||
|
||
---
|
||
|
||
## <20><> <20>唳旿蝐餃<E89D90><E9A483>㗇𥋘
|
||
|
||
### 撣貊鍂摮埈挾蝐餃<E89D90>
|
||
|
||
| <20>券<EFBFBD>?| <20>刻<EFBFBD>蝐餃<E89D90> | 霂湔<E99C82> |
|
||
|------|---------|------|
|
||
| 銝駁睸 | SERIAL | <20>湔㺭<E6B994>芸<EFBFBD> |
|
||
| 憭㚚睸 | INTEGER | 銝𦒘蜓<F0A69298>桃掩<E6A183>衤<EFBFBD><E8A1A4>?|
|
||
| <20>剜<EFBFBD><E5899C>?| VARCHAR(N) | N<500嚗<30><E59A97>憪枏<E686AA><E69E8F><EFBFBD><EFBFBD>憸?|
|
||
| <20>踵<EFBFBD><E8B8B5>?| TEXT | <20>𣳇鵭摨阡<E691A8><E998A1>塚<EFBFBD>憒<EFBFBD><E68692>餈啜<E9A488><E5959C><EFBFBD>摰?|
|
||
| 撣<><E692A3><EFBFBD>?| BOOLEAN | true/false |
|
||
| <20>交<EFBFBD><E4BAA4>園𡢿 | TIMESTAMP | 蝎曄&<E69B84>唳神蝘?|
|
||
| <20>煾<EFBFBD> | DECIMAL(10,2) | <20>踹<EFBFBD>蝎曉漲<E69B89>桅<EFBFBD> |
|
||
| JSON | JSONB | <20>舀<EFBFBD>蝝W<E89D9D>嚗峕<E59A97>扯<EFBFBD><E689AF>游末 |
|
||
|
||
### 摮埈挾<E59F88>踹漲撱箄悅
|
||
|
||
```sql
|
||
-- <20>剜<EFBFBD><E5899C>?
|
||
name VARCHAR(100) -- 憪枏<E686AA>
|
||
title VARCHAR(200) -- <20><><EFBFBD>
|
||
email VARCHAR(255) -- <20>桃拳
|
||
phone VARCHAR(20) -- <20>𧢲㦤<F0A7A2B2>?
|
||
|
||
-- <20>嗆<EFBFBD><E59786><EFBFBD>銝?
|
||
status VARCHAR(20) -- active, inactive, deleted
|
||
role VARCHAR(20) -- user, admin
|
||
|
||
-- <20>踵<EFBFBD><E8B8B5>?
|
||
description TEXT -- <20>讛膩
|
||
content TEXT -- <20><>捆
|
||
```
|
||
|
||
---
|
||
|
||
## <20>?璉<><E79289>交<EFBFBD><E4BAA4>?
|
||
|
||
**霈曇恣<E69B87>啗”<E59597>嗅<EFBFBD>憿餅<E686BF><E9A485>伐<EFBFBD>**
|
||
- [ ] 銵典<E98AB5>蝚血<E89D9A><E8A180>賢<EFBFBD>閫<EFBFBD><E996AB>嚗<EFBFBD><E59A97><EFBFBD>?銝见<E98A9D>蝥?憭齿㺭嚗?
|
||
- [ ] 雿輻鍂甇<E98D82>&<EFBFBD><EFBC86>chema嚗īlatform/aia/asl/pkb蝑㚁<E89D91>
|
||
- [ ] <20><>鉄id銝駁睸嚗𠄎ERIAL PRIMARY KEY嚗?
|
||
- [ ] <20><>鉄created_at<61>吴pdated_at<61>園𡢿<E59C92>?
|
||
- [ ] <20>冽<EFBFBD><E586BD>唾<EFBFBD>銵典<E98AB5><E585B8>哎ser_id憭㚚睸
|
||
- [ ] <20><><EFBFBD>匧<EFBFBD><E58CA7>桅<EFBFBD><E6A185>伨N DELETE蝑𣇉裦
|
||
- [ ] <20><><EFBFBD>匧<EFBFBD><E58CA7>桅<EFBFBD>瘛餃<E7989B>鈭<EFBFBD>揣撘?
|
||
- [ ] 撣貊鍂<E8B28A>亥砭摮埈挾瘛餃<E7989B>鈭<EFBFBD>揣撘?
|
||
- [ ] 憭㚚睸蝥行<E89DA5>蝚血<E89D9A>頝沒chema靘肽<E99D98>閫<EFBFBD><E996AB>
|
||
- [ ] <20>𤩺<EFBFBD>摮埈挾撌脣<E6928C>撖<EFBFBD><E69296><EFBFBD>?
|
||
|
||
---
|
||
|
||
## <20><> <20>詨<EFBFBD><E8A9A8><EFBFBD>﹝
|
||
|
||
**<EFBFBD>餉<EFBFBD>嚗?*
|
||
- [<EFBFBD>唳旿摨枏<EFBFBD>撅<EFBFBD>閫<EFBFBD>㦛](./03-<2D>唳旿摨枏<E691A8>撅<EFBFBD>閫<EFBFBD>㦛.md) 潃?<3F>亦<EFBFBD><E4BAA6><EFBFBD><EFBFBD>农chema<6D>諹”
|
||
|
||
**璅⊥踎嚗?*
|
||
- [<5B>唳旿摨栞挽霈⊥芋<E28AA5>瓢(../_templates/<2F>唳旿摨栞挽霈?璅⊥踎.md)
|
||
|
||
**<EFBFBD><EFBFBD>芋<EFBFBD>𡑒挽霈∴<EFBFBD>**
|
||
- [撟喳蝱<E596B3>箇<EFBFBD>撅<EFBFBD>(../01-撟喳蝱<E596B3>箇<EFBFBD>撅?README.md)
|
||
- [<5B>𡁶鍂<F0A181B6>賢<EFBFBD>撅<EFBFBD>(../02-<2D>𡁶鍂<F0A181B6>賢<EFBFBD>撅?README.md)
|
||
- [銝𡁜𦛚璅∪<E79285>撅<EFBFBD>(../03-銝𡁜𦛚璅∪<E79285>/README.md)
|
||
|
||
---
|
||
|
||
**<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD>堆<EFBFBD>** 2025-11-06
|
||
**蝏湔擪鈭綽<E988AD>** <20><><EFBFBD>舀沲<E88880><E6B2B2><EFBFBD>
|
||
**<EFBFBD><EFBFBD>𧋦嚗?* v2.0
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|