Files
AIclinicalresearch/docs/09-架构实施/01-Schema隔离架构设计(10个).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

901 lines
31 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.
# Schema髫皮ヲサ譫カ譫<EFBDB6>ョセ隶。<E99AB6>?0荳ェSchema<6D>?
> **譁<>。」迚域悽<E59F9F>?* V1.0
> **蛻カ螳壽律譛滂シ?* 2025-11-09
> **螳樊命遲也払<E4B99F>?* 3荳ェ隸ヲ扈<EFBDA6>ソ∫ァ?+ 7荳ェ遨コSchema鬚<61>
> **譫カ譫<EFBDB6>次蛻呻シ?* Just-in-time隶セ隶。<E99AB6>瑚★辟ヲ蠖灘燕髴€豎ゑシ梧楔譫<E6A594><EFBFBD>蕗謇ゥ螻<EFBDA9>
---
## <20>搭 逶ョ蠖<EFBDAE>
1. [譫カ譫<EFBFBD>ヲりソー](#譫カ譫<EFBDB6>ヲりソー)
2. [10荳ェSchema蜈ィ譎ッ](#10荳ェschema蜈ィ譎ッ)
3. [Schema萓晁オ門<EFBFBD>邉サ](#schema萓晁オ門<EFBDB5>邉サ)
4. [隸ヲ扈<EFBFBD>ョセ隶。<EFBFBD>?荳ェ霑∫ァサSchema](#隸ヲ扈<EFBDA6>ョセ隶。3荳ェ霑∫ァサschema)
5. [<EFBFBD><EFBFBD>?荳ェ遨コSchema](#鬚<>蕗7荳ェ遨コschema)
6. [霑∫ァサ遲也払](#霑∫ァサ遲也払)
7. [邇ー譛芽。ィ蛻<EFBDA8><E89BBB>譁ケ譯<EFBDB9>(#邇ー譛芽。ィ蛻<EFBFBD><EFBFBD>譁ケ譯?
8. [螟夜醗蜥瑚キィSchema蠑慕畑](#螟夜醗蜥瑚キィschema蠑慕畑)
9. [Prisma驟咲スョ遲也払](#prisma驟咲スョ遲也払)
---
## 譫カ譫<EFBDB6>ヲりソー
### 隶セ隶。逶ョ譬<EFBDAE>
1. **讓。蝮怜喧髫皮ヲ?* - 豈丈クェ荳壼苅讓。蝮礼峡遶鬼chema<6D>梧髪謖∫峡遶矩Κ鄂?
2. **謨ー謐ョ螳牙<E89EB3>** - Schema郤ァ蛻ォ逧<EFBDAB>揀髯先而蛻?
3. **謇ゥ螻墓€ァ蠑コ** - 譁ー讓。蝮怜ソォ騾滓磁蜈・<E89C88>悟宵髴€蛻帛サコ譁ーSchema
4. **貂占ソ帛シ丞ョ樊<EFBDAE>?* - 莨伜<E88EA8>霑∫ァサ譬ク蠢<EFBDB8>3荳ェSchema<6D><EFBFBD>菴呎潔髴€謇ゥ螻<EFBDA9>
### 螳樊命遲也払<E4B99F>?隸ヲ扈<EFBDA6>+7遨?箝?
```
Week 1驥咲せ<E592B2>?
笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?
笏? 3荳ェ隸ヲ扈<EFBDA6>chema<6D>亥ョ梧紛隶セ隶?謨ー謐ョ霑∫ァサ<EFBDA7>? 笏?
笏? 笨?platform_schema - 1荳ェ陦ィ<E999A6><EFBDA8>sers<72>? 笏?
笏? 笨?aia_schema - 5荳ェ陦ィ<E999A6>亥ッケ隸晉嶌蜈ウ<E89C88><EFBDB3> 笏?
笏? 笨?pkb_schema - 5荳ェ陦ィ<E999A6>育衍隸<E8A18D>コ鍋嶌蜈ウ<E89C88>? 笏?
笏懌楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?
笏? 7荳ェ遨コSchema<6D>亥宵蛻帛サコ蜻ス蜷咲ゥコ髣エ<E9ABA3>? 笏?
笏? <20>搭 asl_schema - Week 3蜀崎ョセ隶。陦ィ 笏?
笏? <20>搭 common_schema - 髴€隕∵慮蜀榊<E89C80>蟒コ陦ィ 笏?
笏? <20>搭 dc_schema - 謨ー謐ョ貂<EFBDAE>エ玲ィ。蝮<EFBDA1> 笏?
笏? <20>搭 rvw_schema - 螳。遞ソ邉サ扈滂シ亥性邇ー譛芽。ィ<EFBDA1><EFBDA8> 笏?
笏? <20>搭 admin_schema - 霑占是邂。逅<EFBDA1>シ亥性邇ー譛芽。ィ<EFBDA1><EFBDA8> 笏?
笏? <20>搭 ssa_schema - 譎コ閭ス扈溯ョ。蛻<EFBDA1>梵 笏?
笏? <20>搭 st_schema - 扈溯ョ。蛻<EFBDA1>梵蟾・蜈キ 笏?
笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?
```
### 譬ク蠢<EFBDB8>次蛻<E6ACA1>
- 笨?**閨夂┬蠖灘燕** - 蜿ェ隸ヲ扈<EFBDA6>ョセ隶。蜥瑚ソ∫ァサ邇ー蝨ィ髴€隕∫噪<E288AB><E599AA>latform/AIA/PKB<4B>?
- 笨?**譫カ譫<EFBDB6><EFBFBD>蕗** - 蛻帛サコ7荳ェ遨コSchema<6D>悟多蜷咲ゥコ髣エ蜊<EFBDB4>菴?
- 笨?**Just-in-time** - ASL遲画ィ。蝮怜惠蠑€蜿大燕蜀崎ッヲ扈<EFBDA6>ョセ隶。<E99AB6>磯∩蜈崎ソ<E5B48E>コヲ隶セ隶。<E99AB6>?
- 笨?**髯堺ス朱」朱勦** - Week 1蟾・菴憺㍼莉<E38DBC>2螟ゥ髯榊<E9ABAF>?.5螟?
---
## 10荳ェSchema蜈ィ譎ッ
| # | Schema蜷咲ァー | 荳ュ譁<EFBDAD>錐遘ー | 迥カ諤?| 逕ィ騾?| Week 1莉サ蜉。 |
|---|-----------|---------|------|------|-----------|
| 1 | `platform_schema` | 蟷ウ蜿ー蝓コ遑€螻?| 笨?隸ヲ扈<EFBDA6>ョセ隶。 | 逕ィ謌キ縲∵揀髯舌€∬ョ、隸?| 霑∫ァサ1荳ェ陦ィ |
| 2 | `aia_schema` | AI譎コ閭ス髣ョ遲<EFBDAE> | 笨?隸ヲ扈<EFBDA6>ョセ隶。 | 蟇ケ隸昴€<E698B4>。ケ逶ョ邂。逅?| 霑∫ァサ5荳ェ陦ィ |
| 3 | `pkb_schema` | 荳ェ莠コ遏・隸<EFBDA5>コ?| 笨?隸ヲ扈<EFBDA6>ョセ隶。 | 遏・隸<EFBDA5>コ薙€∵枚譯」縲∵音螟<E99FB3>炊 | 霑∫ァサ5荳ェ陦ィ |
| 4 | `asl_schema` | AI譎コ閭ス譁<EFBDBD>鍵 | <20>搭 遨コSchema | 譁<>鍵遲幃€?| 蜿ェ蛻帛サコSchema |
| 5 | `common_schema` | 騾夂畑閭ス蜉帛ア?| <20>搭 遨コSchema | LLM菴ソ逕ィ隶ー蠖輔€eature Flags | 蜿ェ蛻帛サコSchema |
| 6 | `dc_schema` | 謨ー謐ョ貂<EFBDAE><EFBFBD> | <20>搭 遨コSchema | 謨ー謐ョ貂<EFBDAE>エ怜キ・蜈キ | 蜿ェ蛻帛サコSchema |
| 7 | `rvw_schema` | 螳。遞ソ邉サ扈<EFBDBB> | <20>搭 遨コSchema | 遞ソ莉カ螳。譟・ | 蜿ェ蛻帛サコSchema+霑∫ァサ1陦?|
| 8 | `admin_schema` | 霑占是邂。逅<EFBDA1> | <20>搭 遨コSchema | 邂。逅<EFBDA1>錘蜿ー縲∵律蠢?| 蜿ェ蛻帛サコSchema+霑∫ァサ1陦?|
| 9 | `ssa_schema` | 譎コ閭ス扈溯ョ。蛻<EFBDA1>梵 | <20>搭 遨コSchema | 譎コ閭ス謨ー謐ョ蛻<EFBDAE>梵 | 蜿ェ蛻帛サコSchema |
| 10 | `st_schema` | 扈溯ョ。蛻<EFBDA1>梵蟾・蜈キ | <20>搭 遨コSchema | 扈溯ョ。蟾・蜈キ髮?| 蜿ェ蛻帛サコSchema |
---
## Schema萓晁オ門<EFBDB5>邉サ
### 螻らコァ扈捺桷 箝?
```
笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?
笏? L3: 荳壼苅讓。蝮怜ア? 笏?
笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏?笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏?笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏?笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏?笏娯楳笏€笏€笏€笏€笏€笏€笏€笏絶狽
笏? 笏? AIA 笏?笏? PKB 笏?笏? ASL 笏?笏? RVW 笏?笏?ADMIN 笏や狽
笏? 笏披楳笏€笏€笏€笏ャ笏€笏€笏€笏€笏?笏披楳笏€笏€笏€笏ャ笏€笏€笏€笏€笏?笏披楳笏€笏€笏€笏ャ笏€笏€笏€笏€笏?笏披楳笏€笏€笏€笏ャ笏€笏€笏€笏€笏?笏披楳笏€笏€笏€笏ャ笏€笏€笏€笏倪狽
笏? 笏? 笏? 笏? 笏? 笏? 笏?
笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏エ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏エ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏エ笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?
笏? 竊? 笏?
笏懌楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?
笏? L2: 騾夂畑閭ス蜉帛ア? 笏?
笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?
笏? 笏? Common 笏? 笏? DC/SSA/ST 笏? 笏?
笏? 笏? (騾夂畑謨ー謐ョ) 笏? 笏? (騾夂畑蟾・蜈キ) 笏? 笏?
笏? 笏披楳笏€笏€笏€笏€笏€笏ャ笏€笏€笏€笏€笏€笏€笏€笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?
笏? 笏? 笏?
笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?
笏? 竊? 笏?
笏懌楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?
笏? L1: 蟷ウ蜿ー蝓コ遑€螻? 笏?
笏? 笏娯楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?
笏? 笏? Platform Schema 笏? 笏?
笏? 笏? - 逕ィ謌キ邂。逅<EFBDA1> (users) 笏? 笏?
笏? 笏? - 譚<>剞謗ァ蛻カ (RBAC) 笏? 笏?
笏? 笏? - 隶、隸∵恪蜉。 (JWT/Session) 笏? 笏?
笏? 笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏? 笏?
笏披楳笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏€笏?
```
### 蠑慕畑蜈ウ邉サ隸エ譏<EFBDB4>
**譬ク蠢<EFBDB8><EFBFBD><EFBDA7><EFBFBD>壼黒蜷台セ晁オ厄シ悟髄荳句シ慕畑**
1. **謇€譛我ク壼苅讓。蝮?竊?platform_schema.users**
- 謇€譛芽。ィ逧?`user_id` 蟄玲ョオ蠑慕畑 `platform_schema.users(id)`
- 霍ィSchema螟夜醗<E5A49C><E98697>ostgreSQL謾ッ謖<EFBDAF>シ?
2. **荳壼苅讓。蝮怜<E89DAE>驛ィ陦ィ荵矩<E88DB5>?*
- 蜷郡chema蜀<61>噪陦ィ蜿ッ莉・逶ク莠貞シ慕畑<E68595>亥ヲia_schema.conversations 竊?aia_schema.projects<74>?
3. **遖∵ュ「蜿榊髄萓晁オ<E69981>**
- platform_schema **荳崎<E88DB3>**蠑慕畑荳壼苅讓。蝮祐chema
- 荳壼苅讓。蝮嶺ケ矩龍**荳榊コ<E6A68A>**逶ク莠貞シ慕畑<E68595>井ソ晄戟迢ャ遶区€<C280><EFBDA7>
---
## 隸ヲ扈<EFBDA6>ョセ隶。<E99AB6>?荳ェ霑∫ァサSchema
### 1<>Ε platform_schema<6D>亥ケウ蜿ー蝓コ遑€螻ゑシ俄ュ?
**逕ィ騾費シ<E8B2BB>** 逕ィ謌キ邂。逅<EFBDA1>€∵揀髯先而蛻カ縲∬ョ、隸∵恪蜉?
**霑∫ァサ陦ィ<E999A6><EFBDA8>** 1荳?
- `users` - 莉?`public.users` 霑∫ァサ
#### 陦ィ扈捺桷<E68DBA>嗽sers
| 蟄玲ョオ蜷?| 邀サ蝙<EFBDBB> | 隸エ譏<EFBDB4> | 邏「蠑<EFBDA2> |
|-------|------|------|------|
| `id` | UUID | 荳サ髞ョ | PK |
| `email` | VARCHAR(255) | 驍ョ邂ア<E98282>亥髪荳€<E88DB3>?| UNIQUE, INDEX |
| `password` | VARCHAR(255) | 蟇<><E89F87>∝嶋蟶<E5B68B> | - |
| `name` | VARCHAR(255) | 逕ィ謌キ蜷?| - |
| `avatar_url` | VARCHAR(500) | 螟エ蜒酋RL | - |
| `role` | VARCHAR(50) | 隗定牡<E5AE9A><E789A1>ser/admin<69>?| INDEX |
| `status` | VARCHAR(50) | 迥カ諤<EFBDB6><EFBFBD>ctive/inactive<76>?| INDEX |
| `kb_quota` | INT | 遏・隸<EFBDA5>コ馴<EFBDBA>鬚?| - |
| `kb_used` | INT | 蟾イ菴ソ逕ィ驟埼「?| - |
| `trial_ends_at` | TIMESTAMP | 隸慕畑扈捺據譌カ髣エ | - |
| `is_trial` | BOOLEAN | 譏ッ蜷ヲ隸慕畑 | - |
| `last_login_at` | TIMESTAMP | 譛€蜷守匳蠖墓慮髣?| - |
| `created_at` | TIMESTAMP | 蛻帛サコ譌カ髣エ | INDEX |
| `updated_at` | TIMESTAMP | 譖エ譁ー譌カ髣エ | - |
**SQL DDL<44>?*
```sql
CREATE SCHEMA IF NOT EXISTS platform_schema;
CREATE TABLE platform_schema.users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
name VARCHAR(255),
avatar_url VARCHAR(500),
role VARCHAR(50) NOT NULL DEFAULT 'user',
status VARCHAR(50) DEFAULT 'active',
kb_quota INT DEFAULT 3,
kb_used INT DEFAULT 0,
trial_ends_at TIMESTAMP,
is_trial BOOLEAN DEFAULT true,
last_login_at TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 邏「蠑<EFBDA2>
CREATE INDEX idx_users_email ON platform_schema.users(email);
CREATE INDEX idx_users_role ON platform_schema.users(role);
CREATE INDEX idx_users_status ON platform_schema.users(status);
CREATE INDEX idx_users_created_at ON platform_schema.users(created_at);
```
---
### 2<>Ε aia_schema<6D><61>I譎コ閭ス髣ョ遲費シ俄ュ<E4BF84>
**逕ィ騾費シ<E8B2BB>** AI蟇ケ隸昴€<E698B4>。ケ逶ョ邂。逅<EFBDA1>€<EFBFBD>€夂畑蟇ケ隸<EFBDB9>
**霑∫ァサ陦ィ<E999A6><EFBDA8>** 5荳?
- `projects` - 莉?`public.projects` 霑∫ァサ
- `conversations` - 莉?`public.conversations` 霑∫ァサ
- `messages` - 莉?`public.messages` 霑∫ァサ
- `general_conversations` - 莉?`public.general_conversations` 霑∫ァサ
- `general_messages` - 莉?`public.general_messages` 霑∫ァサ
#### 陦ィ扈捺桷讎りァ?
**1. projects<74>磯。ケ逶ョ陦ィ<E999A6>?*
| 蟄玲ョオ蜷?| 邀サ蝙<EFBDBB> | 隸エ譏<EFBDB4> | 螟夜醗 |
|-------|------|------|------|
| `id` | UUID | 荳サ髞ョ | - |
| `user_id` | UUID | 逕ィ謌キID | 竊?`platform_schema.users(id)` |
| `name` | VARCHAR(255) | 鬘ケ逶ョ蜷咲ァー | - |
| `background` | TEXT | 遐皮ゥカ閭梧勹 | - |
| `research_type` | VARCHAR(50) | 遐皮ゥカ邀サ蝙<EFBDBB> | - |
| `conversation_count` | INT | 蟇ケ隸晄<E99AB8>?| - |
| `created_at` | TIMESTAMP | 蛻帛サコ譌カ髣エ | - |
| `updated_at` | TIMESTAMP | 譖エ譁ー譌カ髣エ | - |
| `deleted_at` | TIMESTAMP | 蛻<>髯、譌カ髣エ<E9ABA3>郁スッ蛻<EFBDAF>髯、<E9ABAF>?| - |
**2. conversations<6E>亥ッケ隸晁。ィ<EFBDA1>?*
| 蟄玲ョオ蜷?| 邀サ蝙<EFBDBB> | 隸エ譏<EFBDB4> | 螟夜醗 |
|-------|------|------|------|
| `id` | UUID | 荳サ髞ョ | - |
| `user_id` | UUID | 逕ィ謌キID | 竊?`platform_schema.users(id)` |
| `project_id` | UUID | 鬘ケ逶ョID | 竊?`aia_schema.projects(id)` |
| `agent_id` | VARCHAR(100) | 譎コ閭ス菴的D | - |
| `title` | VARCHAR(255) | 蟇ケ隸晄<E99AB8><E69984><EFBFBD> | - |
| `model_name` | VARCHAR(50) | 讓。蝙句錐遘ー | - |
| `message_count` | INT | 豸域<E8B1B8>謨?| - |
| `total_tokens` | INT | 諤サToken謨?| - |
| `metadata` | JSONB | 蜈<>焚謐?| - |
| `created_at` | TIMESTAMP | 蛻帛サコ譌カ髣エ | - |
| `updated_at` | TIMESTAMP | 譖エ譁ー譌カ髣エ | - |
| `deleted_at` | TIMESTAMP | 蛻<>髯、譌カ髣エ | - |
**3. messages<65>域カ域<EFBDB6>陦ィ<E999A6>?*
| 蟄玲ョオ蜷?| 邀サ蝙<EFBDBB> | 隸エ譏<EFBDB4> | 螟夜醗 |
|-------|------|------|------|
| `id` | UUID | 荳サ髞ョ | - |
| `conversation_id` | UUID | 蟇ケ隸扞D | 竊?`aia_schema.conversations(id)` |
| `role` | VARCHAR(20) | 隗定牡<E5AE9A><E789A1>ser/assistant<6E>?| - |
| `content` | TEXT | 豸域<E8B1B8><EFBFBD>ョケ | - |
| `model` | VARCHAR(50) | 菴ソ逕ィ逧<EFBDA8>ィ。蝙?| - |
| `metadata` | JSONB | 蜈<>焚謐?| - |
| `tokens` | INT | Token謨?| - |
| `is_pinned` | BOOLEAN | 譏ッ蜷ヲ鄂ョ鬘カ | - |
| `created_at` | TIMESTAMP | 蛻帛サコ譌カ髣エ | - |
**4. general_conversations<6E>€夂畑蟇ケ隸晁。ィ<EFBDA1><EFBDA8>**
| 蟄玲ョオ蜷?| 邀サ蝙<EFBDBB> | 隸エ譏<EFBDB4> | 螟夜醗 |
|-------|------|------|------|
| `id` | UUID | 荳サ髞ョ | - |
| `user_id` | UUID | 逕ィ謌キID | 竊?`platform_schema.users(id)` |
| `title` | VARCHAR(255) | 蟇ケ隸晄<E99AB8><E69984><EFBFBD> | - |
| `model_name` | VARCHAR(50) | 讓。蝙句錐遘ー | - |
| `created_at` | TIMESTAMP | 蛻帛サコ譌カ髣エ | - |
| `updated_at` | TIMESTAMP | 譖エ譁ー譌カ髣エ | - |
| `deleted_at` | TIMESTAMP | 蛻<>髯、譌カ髣エ | - |
**5. general_messages<65>€夂畑豸域<E8B1B8>陦ィ<E999A6><EFBDA8>**
| 蟄玲ョオ蜷?| 邀サ蝙<EFBDBB> | 隸エ譏<EFBDB4> | 螟夜醗 |
|-------|------|------|------|
| `id` | UUID | 荳サ髞ョ | - |
| `conversation_id` | UUID | 蟇ケ隸扞D | 竊?`aia_schema.general_conversations(id)` |
| `role` | VARCHAR(20) | 隗定牡 | - |
| `content` | TEXT | 豸域<E8B1B8><EFBFBD>ョケ | - |
| `model` | VARCHAR(50) | 菴ソ逕ィ逧<EFBDA8>ィ。蝙?| - |
| `metadata` | JSONB | 蜈<>焚謐?| - |
| `tokens` | INT | Token謨?| - |
| `created_at` | TIMESTAMP | 蛻帛サコ譌カ髣エ | - |
**SQL DDL<44>?*
```sql
CREATE SCHEMA IF NOT EXISTS aia_schema;
-- 1. projects
CREATE TABLE aia_schema.projects (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL, -- 蠑慕畑platform_schema.users
name VARCHAR(255) NOT NULL,
background TEXT DEFAULT '',
research_type VARCHAR(50) DEFAULT 'observational',
conversation_count INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES platform_schema.users(id) ON DELETE CASCADE
);
-- 2. conversations
CREATE TABLE aia_schema.conversations (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL,
project_id UUID,
agent_id VARCHAR(100) NOT NULL,
title VARCHAR(255) NOT NULL,
model_name VARCHAR(50) DEFAULT 'deepseek-v3',
message_count INT DEFAULT 0,
total_tokens INT DEFAULT 0,
metadata JSONB,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES platform_schema.users(id) ON DELETE CASCADE,
FOREIGN KEY (project_id) REFERENCES aia_schema.projects(id) ON DELETE CASCADE
);
-- 3. messages
CREATE TABLE aia_schema.messages (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
conversation_id UUID NOT NULL,
role VARCHAR(20) NOT NULL,
content TEXT NOT NULL,
model VARCHAR(50),
metadata JSONB,
tokens INT,
is_pinned BOOLEAN DEFAULT false,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (conversation_id) REFERENCES aia_schema.conversations(id) ON DELETE CASCADE
);
-- 4. general_conversations
CREATE TABLE aia_schema.general_conversations (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL,
title VARCHAR(255) NOT NULL,
model_name VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES platform_schema.users(id) ON DELETE CASCADE
);
-- 5. general_messages
CREATE TABLE aia_schema.general_messages (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
conversation_id UUID NOT NULL,
role VARCHAR(20) NOT NULL,
content TEXT NOT NULL,
model VARCHAR(50),
metadata JSONB,
tokens INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (conversation_id) REFERENCES aia_schema.general_conversations(id) ON DELETE CASCADE
);
-- 邏「蠑<EFBDA2>
CREATE INDEX idx_aia_projects_user_id ON aia_schema.projects(user_id);
CREATE INDEX idx_aia_projects_created_at ON aia_schema.projects(created_at);
CREATE INDEX idx_aia_conversations_user_id ON aia_schema.conversations(user_id);
CREATE INDEX idx_aia_conversations_project_id ON aia_schema.conversations(project_id);
CREATE INDEX idx_aia_messages_conversation_id ON aia_schema.messages(conversation_id);
CREATE INDEX idx_aia_general_conversations_user_id ON aia_schema.general_conversations(user_id);
CREATE INDEX idx_aia_general_messages_conversation_id ON aia_schema.general_messages(conversation_id);
```
---
### 3<>Ε pkb_schema<6D>井クェ莠コ遏・隸<EFBDA5>コ難シ俄ュ<E4BF84>
**逕ィ騾費シ<E8B2BB>** 遏・隸<EFBDA5>コ鍋ョ。逅<EFBDA1>€∵枚譯」邂。逅<EFBDA1>€∵音螟<E99FB3>炊莉サ蜉。
**霑∫ァサ陦ィ<E999A6><EFBDA8>** 5荳?
- `knowledge_bases` - 莉?`public.knowledge_bases` 霑∫ァサ
- `documents` - 莉?`public.documents` 霑∫ァサ
- `batch_tasks` - 莉?`public.batch_tasks` 霑∫ァサ
- `batch_results` - 莉?`public.batch_results` 霑∫ァサ
- `task_templates` - 莉?`public.task_templates` 霑∫ァサ
#### 陦ィ扈捺桷讎りァ?
**1. knowledge_bases<65>育衍隸<E8A18D>コ楢。ィ<EFBDA1><EFBDA8>**
| 蟄玲ョオ蜷?| 邀サ蝙<EFBDBB> | 隸エ譏<EFBDB4> | 螟夜醗 |
|-------|------|------|------|
| `id` | UUID | 荳サ髞ョ | - |
| `user_id` | UUID | 逕ィ謌キID | 竊?`platform_schema.users(id)` |
| `name` | VARCHAR(255) | 遏・隸<EFBDA5>コ灘錐遘?| - |
| `description` | TEXT | 謠剰ソー | - |
| `dify_dataset_id` | VARCHAR(255) | Dify遏・隸<EFBDA5>コ的D | - |
| `file_count` | INT | 譁<>サカ謨?| - |
| `total_size_bytes` | BIGINT | 諤サ螟ァ蟆擾シ亥ュ苓鰍<E88B93>?| - |
| `created_at` | TIMESTAMP | 蛻帛サコ譌カ髣エ | - |
| `updated_at` | TIMESTAMP | 譖エ譁ー譌カ髣エ | - |
**2. documents<74>域枚譯」陦ィ<E999A6>?* 箝?蛹<>性Phase 2蜈ィ譁<EFBDA8><E8AD81>隸サ蟄玲ョオ
| 蟄玲ョオ蜷?| 邀サ蝙<EFBDBB> | 隸エ譏<EFBDB4> | 螟夜醗 |
|-------|------|------|------|
| `id` | UUID | 荳サ髞ョ | - |
| `kb_id` | UUID | 遏・隸<EFBDA5>コ的D | 竊?`pkb_schema.knowledge_bases(id)` |
| `user_id` | UUID | 逕ィ謌キID | 竊?`platform_schema.users(id)` |
| `filename` | VARCHAR(255) | 譁<>サカ蜷?| - |
| `file_type` | VARCHAR(50) | 譁<>サカ邀サ蝙<EFBDBB> | - |
| `file_size_bytes` | BIGINT | 譁<>サカ螟ァ蟆<EFBDA7> | - |
| `file_url` | TEXT | 譁<>サカURL | - |
| `dify_document_id` | VARCHAR(255) | Dify譁<79>。」ID | - |
| `status` | VARCHAR(50) | 迥カ諤?| - |
| `progress` | INT | 霑帛コヲ<EFBDBA>?-100<30>?| - |
| `error_message` | TEXT | 髞呵ッッ菫。諱ッ | - |
| `segments_count` | INT | 蛻<>ョオ謨?| - |
| `tokens_count` | INT | Token謨?| - |
| **Phase 2蟄玲ョオ<EFBDAE>?* | | | |
| `extraction_method` | VARCHAR(50) | 謠仙叙譁ケ豕包シ<E58C85>ymupdf/nougat/mammoth/direct<63>?| - |
| `extraction_quality` | FLOAT | 謠仙叙雍ィ驥擾シ?-1<>?| - |
| `char_count` | INT | 蟄礼ャヲ謨?| - |
| `language` | VARCHAR(20) | 隸ュ險€<E99AAA><C280>hinese/english<73>?| - |
| `extracted_text` | TEXT | 謠仙叙逧<E58F99>枚譛?| - |
| `uploaded_at` | TIMESTAMP | 荳贋シ<E8B48B>譌カ髣エ | - |
| `processed_at` | TIMESTAMP | 螟<>炊螳梧<E89EB3>譌カ髣エ | - |
**3. batch_tasks<6B>域音螟<E99FB3>炊莉サ蜉。陦ィ<E999A6><EFBDA8>**
| 蟄玲ョオ蜷?| 邀サ蝙<EFBDBB> | 隸エ譏<EFBDB4> | 螟夜醗 |
|-------|------|------|------|
| `id` | UUID | 荳サ髞ョ | - |
| `user_id` | UUID | 逕ィ謌キID | 竊?`platform_schema.users(id)` |
| `kb_id` | UUID | 遏・隸<EFBDA5>コ的D | 竊?`pkb_schema.knowledge_bases(id)` |
| `name` | VARCHAR(255) | 莉サ蜉。蜷咲ァー | - |
| `template_type` | VARCHAR(50) | 讓。譚ソ邀サ蝙<EFBDBB> | - |
| `template_id` | VARCHAR(100) | 讓。譚ソID | - |
| `prompt` | TEXT | 謠千、コ隸?| - |
| `status` | VARCHAR(50) | 迥カ諤?| - |
| `total_documents` | INT | 諤サ譁<EFBDBB>。」謨ー | - |
| `completed_count` | INT | 螳梧<E89EB3>謨?| - |
| `failed_count` | INT | 螟ア雍・謨?| - |
| `model_type` | VARCHAR(50) | 讓。蝙狗アサ蝙<EFBDBB> | - |
| `concurrency` | INT | 蟷カ蜿第<E89CBF>?| - |
| `started_at` | TIMESTAMP | 蠑€蟋区慮髣?| - |
| `completed_at` | TIMESTAMP | 螳梧<E89EB3>譌カ髣エ | - |
| `duration_seconds` | INT | 謇ァ陦梧慮髟ソ<E9AB9F>育ァ抵シ?| - |
| `created_at` | TIMESTAMP | 蛻帛サコ譌カ髣エ | - |
| `updated_at` | TIMESTAMP | 譖エ譁ー譌カ髣エ | - |
**4. batch_results<74>域音螟<E99FB3>炊扈捺棡陦ィ<E999A6><EFBDA8>**
| 蟄玲ョオ蜷?| 邀サ蝙<EFBDBB> | 隸エ譏<EFBDB4> | 螟夜醗 |
|-------|------|------|------|
| `id` | UUID | 荳サ髞ョ | - |
| `task_id` | UUID | 莉サ蜉。ID | 竊?`pkb_schema.batch_tasks(id)` |
| `document_id` | UUID | 譁<>。」ID | 竊?`pkb_schema.documents(id)` |
| `status` | VARCHAR(50) | 迥カ諤?| - |
| `data` | JSONB | 扈捺桷蛹匁焚謐?| - |
| `raw_output` | TEXT | 蜴溷ァ玖セ灘<EFBDBE> | - |
| `error_message` | TEXT | 髞呵ッッ菫。諱ッ | - |
| `processing_time_ms` | INT | 螟<>炊譌カ髟ソ<E9AB9F>域ッォ遘抵シ<E68AB5> | - |
| `tokens_used` | INT | Token菴ソ逕ィ驥?| - |
| `created_at` | TIMESTAMP | 蛻帛サコ譌カ髣エ | - |
**5. task_templates<65>井ササ蜉。讓。譚ソ陦ィ<E999A6>?*
| 蟄玲ョオ蜷?| 邀サ蝙<EFBDBB> | 隸エ譏<EFBDB4> | 螟夜醗 |
|-------|------|------|------|
| `id` | UUID | 荳サ髞ョ | - |
| `user_id` | UUID | 逕ィ謌キID | 竊?`platform_schema.users(id)` |
| `name` | VARCHAR(255) | 讓。譚ソ蜷咲ァー | - |
| `description` | TEXT | 謠剰ソー | - |
| `prompt` | TEXT | 謠千、コ隸?| - |
| `output_fields` | JSONB | 霎灘<E99C8E>蟄玲ョオ螳壻ケ<E5A3BB> | - |
| `is_public` | BOOLEAN | 譏ッ蜷ヲ蜈ャ蠑€ | - |
| `created_at` | TIMESTAMP | 蛻帛サコ譌カ髣エ | - |
| `updated_at` | TIMESTAMP | 譖エ譁ー譌カ髣エ | - |
**SQL DDL<44>?*
```sql
CREATE SCHEMA IF NOT EXISTS pkb_schema;
-- 1. knowledge_bases
CREATE TABLE pkb_schema.knowledge_bases (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL,
name VARCHAR(255) NOT NULL,
description TEXT,
dify_dataset_id VARCHAR(255) NOT NULL,
file_count INT DEFAULT 0,
total_size_bytes BIGINT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES platform_schema.users(id) ON DELETE CASCADE
);
-- 2. documents (蛹<>性Phase 2蟄玲ョオ)
CREATE TABLE pkb_schema.documents (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
kb_id UUID NOT NULL,
user_id UUID NOT NULL,
filename VARCHAR(255) NOT NULL,
file_type VARCHAR(50) NOT NULL,
file_size_bytes BIGINT NOT NULL,
file_url TEXT NOT NULL,
dify_document_id VARCHAR(255) NOT NULL,
status VARCHAR(50) DEFAULT 'uploading',
progress INT DEFAULT 0,
error_message TEXT,
segments_count INT,
tokens_count INT,
-- Phase 2蟄玲ョオ
extraction_method VARCHAR(50),
extraction_quality FLOAT,
char_count INT,
language VARCHAR(20),
extracted_text TEXT,
uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
processed_at TIMESTAMP,
FOREIGN KEY (kb_id) REFERENCES pkb_schema.knowledge_bases(id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES platform_schema.users(id) ON DELETE CASCADE
);
-- 3. batch_tasks
CREATE TABLE pkb_schema.batch_tasks (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL,
kb_id UUID NOT NULL,
name VARCHAR(255) NOT NULL,
template_type VARCHAR(50) NOT NULL,
template_id VARCHAR(100),
prompt TEXT NOT NULL,
status VARCHAR(50) NOT NULL,
total_documents INT NOT NULL,
completed_count INT DEFAULT 0,
failed_count INT DEFAULT 0,
model_type VARCHAR(50) NOT NULL,
concurrency INT DEFAULT 3,
started_at TIMESTAMP,
completed_at TIMESTAMP,
duration_seconds INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES platform_schema.users(id) ON DELETE CASCADE,
FOREIGN KEY (kb_id) REFERENCES pkb_schema.knowledge_bases(id) ON DELETE CASCADE
);
-- 4. batch_results
CREATE TABLE pkb_schema.batch_results (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
task_id UUID NOT NULL,
document_id UUID NOT NULL,
status VARCHAR(50) NOT NULL,
data JSONB,
raw_output TEXT,
error_message TEXT,
processing_time_ms INT,
tokens_used INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (task_id) REFERENCES pkb_schema.batch_tasks(id) ON DELETE CASCADE,
FOREIGN KEY (document_id) REFERENCES pkb_schema.documents(id) ON DELETE CASCADE
);
-- 5. task_templates
CREATE TABLE pkb_schema.task_templates (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL,
name VARCHAR(255) NOT NULL,
description TEXT,
prompt TEXT NOT NULL,
output_fields JSONB NOT NULL,
is_public BOOLEAN DEFAULT false,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES platform_schema.users(id) ON DELETE CASCADE
);
-- 邏「蠑<EFBDA2>
CREATE INDEX idx_pkb_knowledge_bases_user_id ON pkb_schema.knowledge_bases(user_id);
CREATE INDEX idx_pkb_documents_kb_id ON pkb_schema.documents(kb_id);
CREATE INDEX idx_pkb_documents_user_id ON pkb_schema.documents(user_id);
CREATE INDEX idx_pkb_documents_status ON pkb_schema.documents(status);
CREATE INDEX idx_pkb_batch_tasks_user_id ON pkb_schema.batch_tasks(user_id);
CREATE INDEX idx_pkb_batch_tasks_kb_id ON pkb_schema.batch_tasks(kb_id);
CREATE INDEX idx_pkb_batch_results_task_id ON pkb_schema.batch_results(task_id);
CREATE INDEX idx_pkb_task_templates_user_id ON pkb_schema.task_templates(user_id);
```
---
## 鬚<><EFBFBD>?荳ェ遨コSchema
### 蛻帛サコ遲也払 箝?
**蜿ェ謇ァ陦?`CREATE SCHEMA`<EFBFBD>御ク榊<EFBFBD>蟒コ陦ィ扈捺<EFBFBD>?*
```sql
-- 4. AI譎コ閭ス譁<EFBDBD><EFBFBD><E98DB5>eek 3蜀崎ッヲ扈<EFBDA6>ョセ隶。<E99AB6><EFBDA1>
CREATE SCHEMA IF NOT EXISTS asl_schema;
COMMENT ON SCHEMA asl_schema IS 'AI譎コ閭ス譁<EFBFBD>鍵遲幃€画ィ。蝮?- Week 3蠑€蜿大燕蜀崎ョセ隶。陦ィ扈捺桷';
-- 5. 騾夂畑閭ス蜉帛アゑシ磯怙隕∵慮蜀榊<E89C80>蟒コ陦ィ<E999A6>?
CREATE SCHEMA IF NOT EXISTS common_schema;
COMMENT ON SCHEMA common_schema IS '騾夂畑閭ス蜉帛ア?- LLM菴ソ逕ィ隶ー蠖輔€eature Flags遲?;
-- 6. 謨ー謐ョ貂<EFBDAE>エ玲ィ。蝮<EFBDA1>
CREATE SCHEMA IF NOT EXISTS dc_schema;
COMMENT ON SCHEMA dc_schema IS '<EFBFBD><EFBFBD>';
-- 7. 螳。遞ソ邉サ扈滂シ亥桁蜷ォ邇ー譛詠eview_tasks陦ィ<E999A6><EFBDA8>
CREATE SCHEMA IF NOT EXISTS rvw_schema;
COMMENT ON SCHEMA rvw_schema IS 'ソ<EFBFBD>';
-- 8. 霑占是邂。逅<EFBDA1>シ亥桁蜷ォ邇ー譛餌dmin_logs陦ィ<E999A6><EFBDA8>
CREATE SCHEMA IF NOT EXISTS admin_schema;
COMMENT ON SCHEMA admin_schema IS '<EFBFBD><EFBFBD>';
-- 9. 譎コ閭ス扈溯ョ。蛻<EFBDA1>
CREATE SCHEMA IF NOT EXISTS ssa_schema;
COMMENT ON SCHEMA ssa_schema IS '<EFBFBD><EFBFBD>';
-- 10. 扈溯ョ。蛻<EFBDA1>梵蟾・蜈キ
CREATE SCHEMA IF NOT EXISTS st_schema;
COMMENT ON SCHEMA st_schema IS '<EFBFBD><EFBFBD>?;
```
### 蜷<>ゥコSchema逧<61>畑騾?
| Schema | 逕ィ騾碑ッエ譏?| 菴墓慮隶セ隶。陦ィ扈捺<E68988>?|
|--------|---------|--------------|
| `asl_schema` | AI譎コ閭ス譁<EFBDBD>鍵遲幃€?| **Week 3 Day 1** - ASL蠑€蜿大燕隸ヲ扈<EFBDA6>ョセ隶。 |
| `common_schema` | 騾夂畑閭ス蜉幢シ<E5B9A2>LM菴ソ逕ィ隶ー蠖輔€eature Flags<67>?| 髴€隕∵慮蜀崎ョセ隶?|
| `dc_schema` | 謨ー謐ョ貂<EFBDAE>エ怜キ・蜈キ | Week 5+謌匁潔髴€ |
| `rvw_schema` | 遞ソ莉カ螳。譟・邉サ扈<EFBDBB> | Week 1霑∫ァサreview_tasks<6B><EFBFBD>莉冶。ィ謖蛾怙 |
| `admin_schema` | 霑占是邂。逅<EFBDA1>錘蜿ー | Week 1霑∫ァサadmin_logs<67><EFBFBD>莉冶。ィ謖蛾怙 |
| `ssa_schema` | 譎コ閭ス扈溯ョ。蛻<EFBDA1>梵 | Week 5+謌匁潔髴€ |
| `st_schema` | 扈溯ョ。蛻<EFBDA1>梵蟾・蜈キ髮?| Week 5+謌匁潔髴€ |
---
## 霑∫ァサ遲也払
### 霑∫ァサ莨伜<E88EA8>郤?
| 莨伜<E88EA8>郤?| Schema | 陦ィ謨ー驥?| 謨ー謐ョ驥丈シー邂?| 霑∫ァサ譌カ髣エ |
|-------|--------|--------|-----------|---------|
| **P0** | platform_schema | 1 | ~10譚?| 15蛻<35>帖 |
| **P0** | aia_schema | 5 | ~500譚?| 30蛻<30>帖 |
| **P0** | pkb_schema | 5 | ~100譚?| 30蛻<30>帖 |
| **P1** | rvw_schema | 1<><31>eview_tasks<6B>?| ~20譚?| 10蛻<30>帖 |
| **P1** | admin_schema | 1<><31>dmin_logs<67>?| ~50譚?| 10蛻<30>帖 |
### 霑∫ァサ豁・鬪、<E9ACAA>?豁・豕包シ?
**Step 1<><EFBFBD>蟒?0荳ェSchema<6D>?蛻<><EFBFBD>?*
```sql
-- 謇ァ陦瑚<E999A6>譛ャ<E8AD9B>?01-create-all-10-schemas.sql
-- 蛻帛サコ10荳ェSchema<6D>?隸ヲ扈<EFBDA6>+7遨コ<E981A8><EFBDBA>
```
**Step 2<><EFBFBD>蟒コ陦ィ扈捺桷<E68DBA>?0蛻<30><EFBFBD>?*
```sql
-- 謇ァ陦瑚<E999A6>譛ャ<E8AD9B>?
-- 002-migrate-platform.sql - 蛻帛サコplatform_schema.users
-- 003-migrate-aia.sql - 蛻帛サコaia_schema逧?荳ェ陦ィ
-- 004-migrate-pkb.sql - 蛻帛サコpkb_schema逧?荳ェ陦ィ
```
**Step 3<>夊ソ∫ァサ謨ー謐ョ<E8AC90><EFBDAE>30蛻<30><EFBFBD>?*
```sql
-- 菴ソ逕ィ INSERT INTO ... SELECT FROM 譁ケ蠑<EFBDB9>
-- 菫晄戟ID荳榊序<E6A68A>檎。ョ菫晏シ慕畑蜈ウ邉サ荳榊<E88DB3>?
```
**Step 4<>夐ェ瑚ッ<E7919A><EFBFBD>30蛻<30><EFBFBD>?*
```sql
-- 謇ァ陦瑚<E999A6>譛ャ<E8AD9B>?05-validate-all.sql
-- 鬪瑚ッ∵焚謐ョ螳梧紛諤ァ縲∝、夜醗郤ヲ譚?
```
### 謨ー謐ョ霑∫ァサ遉コ萓<EFBDBA>
**platform_schema.users<72>?*
```sql
INSERT INTO platform_schema.users
SELECT * FROM public.users;
```
**aia_schema.projects<74>?*
```sql
INSERT INTO aia_schema.projects
SELECT * FROM public.projects;
```
**鬪瑚ッ<E7919A>シ?*
```sql
-- 鬪瑚ッ∵焚謐ョ驥?
SELECT 'users' AS table_name, COUNT(*) FROM platform_schema.users
UNION ALL
SELECT 'projects', COUNT(*) FROM aia_schema.projects
UNION ALL
SELECT 'conversations', COUNT(*) FROM aia_schema.conversations;
```
---
## 邇ー譛芽。ィ蛻<EFBDA8><E89BBB>譁ケ譯?
### 蠖灘燕public schema荳ュ逧<EFBDAD>13荳ェ陦ィ
| # | 陦ィ蜷<EFBDA8> | 逶ョ譬⑳chema | 霑∫ァサ譌カ譛コ | 隸エ譏<EFBDB4> |
|---|------|-----------|---------|------|
| 1 | `users` | `platform_schema` | Week 1 | 笨?P0譬ク蠢<EFBDB8>。?|
| 2 | `projects` | `aia_schema` | Week 1 | 笨?P0譬ク蠢<EFBDB8>。?|
| 3 | `conversations` | `aia_schema` | Week 1 | 笨?P0譬ク蠢<EFBDB8>。?|
| 4 | `messages` | `aia_schema` | Week 1 | 笨?P0譬ク蠢<EFBDB8>。?|
| 5 | `general_conversations` | `aia_schema` | Week 1 | 笨?P0譬ク蠢<EFBDB8>。?|
| 6 | `general_messages` | `aia_schema` | Week 1 | 笨?P0譬ク蠢<EFBDB8>。?|
| 7 | `knowledge_bases` | `pkb_schema` | Week 1 | 笨?P0譬ク蠢<EFBDB8>。?|
| 8 | `documents` | `pkb_schema` | Week 1 | 笨?P0譬ク蠢<EFBDB8>。?|
| 9 | `batch_tasks` | `pkb_schema` | Week 1 | 笨?P0譬ク蠢<EFBDB8>。?|
| 10 | `batch_results` | `pkb_schema` | Week 1 | 笨?P0譬ク蠢<EFBDB8>。?|
| 11 | `task_templates` | `pkb_schema` | Week 1 | 笨?P0譬ク蠢<EFBDB8>。?|
| 12 | `review_tasks` | `rvw_schema` | Week 1謌紋ソ晉<EFBDBF>?| <20>搭 P1蜿ッ騾?|
| 13 | `admin_logs` | `admin_schema` | Week 1謌紋ソ晉<EFBDBF>?| <20>搭 P1蜿ッ騾?|
**隸エ譏趣シ?*
- **莨伜<E88EA8>霑∫ァサ11荳ェ陦ィ**蛻?荳ェ隸ヲ扈<EFBDA6>chema<6D><61>latform/AIA/PKB<4B>?
- **review_tasks蜥径dmin_logs**蜿ッ莉・<E88E89>?
- 騾蛾。ケA<EFBDB9>啗eek 1荳€蟷カ霑∫ァサ蛻ー蟇ケ蠎皮噪遨コSchema<6D>育ョ€蜊包シ<E58C85>
- 騾蛾。ケB<EFBDB9>壽嘯譌カ菫晉蕗蝨ィpublic<69>碁怙隕∵慮蜀崎ソ∫ァサ<EFBDA7>亥苅螳橸シ?
- **蟒コ隶ョ騾蛾。ケA**<2A>壻ク€谺。諤ァ霑∫ァサ螳梧<E89EB3><E6A2A7>碁∩蜈肴ョ狗蕗
---
## 螟夜醗蜥瑚キィSchema蠑慕畑
### PostgreSQL霍ィSchema螟夜醗謾ッ謖<EFBDAF> 笨?
PostgreSQL **螳悟<E89EB3>謾ッ謖<EFBDAF>**霍ィSchema逧<61>、夜醗郤ヲ譚滂シ<E6BB82>
```sql
-- 遉コ萓具シ啾ia_schema.projects 蠑慕畑 platform_schema.users
CREATE TABLE aia_schema.projects (
id UUID PRIMARY KEY,
user_id UUID NOT NULL,
name VARCHAR(255),
FOREIGN KEY (user_id)
REFERENCES platform_schema.users(id)
ON DELETE CASCADE
);
```
### 蠑慕畑隗<E79591><E99A97>
**笨?蜈∬ョク逧<EFBDB8>シ慕畑<E68595><E79591>**
- 荳壼苅讓。蝮祐chema 竊?`platform_schema.users(id)`
- 蜷郡chema蜀<61>噪陦ィ逶ク莠貞シ慕<EFBDBC>?
**笶?遖∵ュ「逧<EFBDA2>シ慕畑<E68595><E79591>**
- `platform_schema` 竊?荳壼苅讓。蝮祐chema<6D>亥渚蜷台セ晁オ厄シ<E58E84>
- 荳壼苅讓。蝮祐chema荵矩龍逶ク莠貞シ慕畑<E68595>井ソ晄戟迢ャ遶区€<C280><EFBDA7>
### 謨ー謐ョ荳€閾エ諤ァ菫晁ッ?
1. **CASCADE蛻<45>髯、** - 逕ィ謌キ蛻<EFBDB7>髯、譌カ<E8AD8C><EFBFBD>閨疲焚謐ョ閾ェ蜉ィ蛻<EFBDA8>髯、
2. **螟夜醗邏「蠑<EFBDA2>** - 謇€譛牙、夜醗蟄玲ョオ蛻帛サコ邏「蠑?
3. **莠句苅菫晄侃** - 霑∫ァサ蝨ィ莠句苅荳ュ謇ァ陦鯉シ悟<EFBDBC>謌仙粥謌門<E8AC8C>螟ア雍・
---
## Prisma驟咲スョ遲也払
### Week 1逧Пrisma驟咲スョ
**蝨ィschema.prisma荳ュ<E88DB3><EFBDAD>**
1. **蜷ッ逕ィmultiSchema鬚<61>ァ育音諤?*
```prisma
generator client {
provider = "prisma-client-js"
previewFeatures = ["multiSchema"]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
schemas = [
"platform_schema",
"aia_schema",
"pkb_schema",
"asl_schema", // 遨コSchema<6D>碁「<E7A281><EFBDA2>?
"common_schema", // 遨コSchema<6D>碁「<E7A281><EFBDA2>?
"dc_schema", // 遨コSchema<6D>碁「<E7A281><EFBDA2>?
"rvw_schema", // 遨コSchema<6D>碁「<E7A281><EFBDA2>?
"admin_schema", // 遨コSchema<6D>碁「<E7A281><EFBDA2>?
"ssa_schema", // 遨コSchema<6D>碁「<E7A281><EFBDA2>?
"st_schema" // 遨コSchema<6D>碁「<E7A281><EFBDA2>?
]
}
```
2. **蜿ェ荳コ3荳ェ隸ヲ扈<EFBDA6>chema螳壻ケ画ィ。蝙<EFBDA1>**
```prisma
// Platform Schema
model User {
// ...
@@map("users")
@@schema("platform_schema")
}
// AIA Schema
model Project {
// ...
@@map("projects")
@@schema("aia_schema")
}
// PKB Schema
model KnowledgeBase {
// ...
@@map("knowledge_bases")
@@schema("pkb_schema")
}
```
3. **7荳ェ遨コSchema荳榊ョ壻ケ画ィ。蝙?*
- 蜿ェ蝨ィschemas蛻苓。ィ荳ュ螢ー譏?
- Week 3蜀堺クコasl_schema豺サ蜉<EFBDBB>讓。蝙<EFBDA1>
- 蜈カ莉匁潔髴€豺サ蜉<EFBDBB>
**隸ヲ扈<EFBDA6>risma驟咲スョ蜿り€<E3828A><EFBFBD>**
- 隗〃2.2螳梧紛迚域枚譯」逧<EFBFBD> Day 4 Prisma驟咲スョ遉コ萓<EFBDBA>
---
## <20>投 蟾・菴憺㍼莨ー邂?
| 莉サ蜉。 | 鬚<>ョ。譌カ髣エ | 隸エ譏<EFBDB4> |
|------|---------|------|
| **Day 1-2荳雁壕<E99B81>壽楔譫<E6A594><EFBFBD><EFBDA7>荳手ョセ隶。** | 8蟆乗慮 | 譛ャ譁<EFBDAC>。?+ 3荳ェSchema SQL |
| **Day 2荳句壕<E58FA5>夂シ門<EFBDBC>霑∫ァサ閼壽<E996BC>?* | 1.5蟆乗慮 | 5荳ェSQL閼壽悽 |
| **Day 3荳雁壕<E99B81>壽鴬陦瑚ソ∫ァ?* | 2-3蟆乗慮 | 螟<>サス + 霑∫ァサ + 鬪瑚ッ<E7919A> |
| **Day 3荳句壕<E58FA5>壼粥閭ス豬玖ッ?* | 2蟆乗慮 | 豬玖ッ慕鴫譛牙粥閭ス |
| **Day 4<>啀risma驟咲スョ** | 3蟆乗慮 | 譖エ譁ーschema.prisma |
| **諤サ隶。** | **郤?6-17蟆乗慮<E4B997>?螟ゥ<E89E9F><EFBDA9>** | 笨?|
---
## <20>識 謌仙粥譬<E7B2A5>
Week 1扈捺據譌カ<E8AD8C>悟コ碑セセ蛻ー<E89BBB><EFBDB0>
- [ ] 笨?10荳ェSchema蜈ィ驛ィ蛻帛サコ謌仙粥
- [ ] 笨?3荳ェ隸ヲ扈<EFBDA6>chema逧?1荳ェ陦ィ謨ー謐ョ100%霑∫ァサ
- [ ] 笨?謇€譛牙、夜醗郤ヲ譚滓ュ」遑ョ蟒コ遶?
- [ ] 笨?邇ー譛牙粥閭ス<E996AD><EFBDBD>IA縲 ̄KB<4B>画ュ」蟶ク霑占。?
- [ ] 笨?Prisma Client逕滓<E98095>謌仙粥
- [ ] 笨?7荳ェ遨コSchema鬪瑚ッ<E7919A>€夊ソ<E5A48A>シ亥庄譟・隸「縲∝庄蛻帛サコ陦ィ<E999A6><EFBDA8>
---
## <20>統 蜷守サュ豁・鬪、
### Week 2
- 蜑咲ォッ扈滉ク€譫カ譫<EFBDB6>
- 蜷守ォッ莉」遐∝<E98190><EFBFBD>
- 騾る<E9A8BE>譁ー逧Тchema扈捺桷
### Week 3
- **隸ヲ扈<EFBDA6>ョセ隶。asl_schema** 箝?
- 荳コasl_schema蛻帛サコ陦ィ扈捺<E68988>?
-€蜿羨SL譬ク蠢<EFBDB8>粥閭ス
### Week 5+
- 謖蛾怙荳コ蜈カ莉也ゥコSchema隶セ隶。陦ィ扈捺<E68988>?
- LLM鄂大<E98482>扈滉ク€
- 蜈カ莉匁ィ。蝮怜シ€蜿?
---
**譁<>。」蛻カ螳夲シ?* AI蜉ゥ謇<EFBDA9>
**螳。譬ク<E8ADAC>?* 蠕<>ョ。譬?
**譛€蜷取峩譁ー<E8AD81><EFBDB0>** 2025-11-09
**譬ク蠢<EFBDB8>ュ也払<E4B99F>夊★辟ヲ蠖灘<E8A096>?+ 譫カ譫<EFBDB6><EFBFBD>蕗 + Just-in-time隶セ隶。** 箝絶ュ絶ュ?