Files
AIclinicalresearch/docs/03-业务模块/ASL-AI智能文献/05-开发记录/2025-11-23_数据库迁移状态说明.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

13 KiB
Raw Blame History

<EFBFBD>唳旿摨栞<EFBFBD>蝘餌𠶖<EFBFBD><EFBFBD><EFBFBD>?

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦嚗? v1.0
*<EFBFBD>𥕦遣<EFBFBD><EFBFBD>嚗? 2025-11-23
蝏湔擪<EFBFBD><EFBFBD><EFBFBD> ASL撘<4C><E69298>穃𣪧<E7A983>? *<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗? 霈啣<E99C88>ASL璅<E79285><E288AA>唳旿摨栞<E691A8>蝘餌𠶖<E9A48C><F0A0B696><EFBFBD>銝箸𧊋<E7AEB8><EFBFBD><E4BA99>睲犖<E79DB2><EFBFBD>靘𥟇<E99D98><F0A59F87><EFBFBD>銝𠹺<E98A9D><F0A0B9BA>?


<EFBFBD><EFBFBD> 敶枏<E695B6><E69E8F>唳旿摨梶𠶖<E6A2B6><F0A0B696><EFBFBD><EFBFBD>

<EFBFBD>?ASL璅<E79285>嚗Òsl_schema嚗? 摰<><E691B0><EFBFBD>

銵典<EFBFBD> <EFBFBD><EFBFBD>? <EFBFBD><EFBFBD>? 霈啣<EFBFBD><EFBFBD>?
literatures <EFBFBD>?撌脫凒<E884AB>? <EFBFBD><EFBFBD><EFBFBD><EFBFBD>靽⊥<EFBFBD><EFBFBD><EFBFBD><EFBFBD>摮埈挾嚗? -
screening_projects <EFBFBD>?甇<> 蝑偦<EFBFBD>厰★<EFBFBD>? -
screening_tasks <EFBFBD>?甇<> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞餃𦛚 -
screening_results <EFBFBD>?甇<> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝏𤘪<EFBFBD> -
fulltext_screening_tasks <EFBFBD>?<3F>啣遣 <EFBFBD><EFBFBD>憭滨<EFBFBD>隞餃𦛚 0
fulltext_screening_results <EFBFBD>?<3F>啣遣 <EFBFBD><EFBFBD>憭滨<EFBFBD>蝏𤘪<EFBFBD> 0

<EFBFBD><EFBFBD>蝏栞捏嚗?

  • <EFBFBD>?ASL璅<E79285><E288AA><EFBFBD><EFBFBD>㗇㺭<E39787><EFBFBD><E6A180><EFBFBD>鈭?asl_schema
  • <EFBFBD>?瘝⊥<E7989D><E28AA5>唳旿瘜<E697BF><E7989C><EFBFBD>?public schema
  • <EFBFBD>?Schema<6D>𠉛氖蝑𣇉裦<F0A38789><EFBFBD><EFBFBD>
  • <EFBFBD>?隞<><E99A9E>霈輸䔮頝臬<E9A09D><EFBFBD>嚗Ǒprisma.aslLiterature, prisma.aslScreeningProject` 蝑㚁<E89D91>

<EFBFBD>𣞁 Public Schema<6D><61><EFBFBD><EFBFBD><E39B96><EFBFBD><EFBFBD><E59A97>ASL<53><EFBFBD>嚗?

<EFBFBD><EFBFBD><EFBFBD>讛膩

<EFBFBD>券★<EFBFBD>格𡟺<EFBFBD><EFBFBD><EFBFBD>睲葉嚗屸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銵刻◤<EFBFBD>躰秤<EFBFBD><EFBFBD>撱箏銁 public schema 銝哨<E98A9D>餈嘥<E9A488><EFBFBD>chema<6D>𠉛氖蝑𣇉裦嚗?

<EFBFBD>躰秤銵典<EFBFBD> 摨𥪜銁Schema 敶枏<EFBFBD><EFBFBD><EFBFBD>?
public.users platform_schema <EFBFBD>𩤃<EFBFBD> <20><EFBFBD>摮睃銁
public.projects aia_schema <EFBFBD>𩤃<EFBFBD> <20><EFBFBD>摮睃銁
public.conversations aia_schema <EFBFBD>𩤃<EFBFBD> <20><EFBFBD>摮睃銁
public.messages aia_schema <EFBFBD>𩤃<EFBFBD> <20><EFBFBD>摮睃銁
public.knowledge_bases pkb_schema <EFBFBD>𩤃<EFBFBD> <20><EFBFBD>摮睃銁
public.documents pkb_schema <EFBFBD>𩤃<EFBFBD> <20><EFBFBD>摮睃銁
public.batch_tasks pkb_schema <EFBFBD>𩤃<EFBFBD> <20><EFBFBD>摮睃銁
public.batch_results pkb_schema <EFBFBD>𩤃<EFBFBD> <20><EFBFBD>摮睃銁

**<2A>唳旿撖寞<E69296>嚗?025-11-23敹怎<E695B9>嚗?*嚗?

platform_schema.users: 3<>∟扇敶?
public.users: 2<>∟扇敶?

aia_schema.projects: 2<>∟扇敶?
public.projects: 2<>∟扇敶?

pkb_schema.knowledge_bases: 2<>∟扇敶?
public.knowledge_bases: 2<>∟扇敶?

敶勗<EFBFBD><EFBFBD><EFBFBD>嚗?

  • <EFBFBD>叚 **銝滚蔣<E6BB9A><E894A3>SL璅<E79285>**嚗㇁SL摰<4C><E691B0><EFBFBD>𠉛氖<F0A0899B>災sl_schema嚗?
  • <EFBFBD>𩤃<EFBFBD> 敶勗<E695B6>AIA璅<E79285>嚗㇁I<E38781><EFBFBD>嚗?
  • <EFBFBD>𩤃<EFBFBD> 敶勗<E695B6>PKB璅<E79285><EFBFBD>䰻霂<E4B0BB><E99C82>嚗?
  • <EFBFBD>𩤃<EFBFBD> 敶勗<E695B6>Platform璅<E79285><EFBFBD><EFBFBD>瑞頂蝏<E9A082><E89D8F>

**韐<>遙敶鍦<E695B6>**嚗?

  • <EFBFBD>㩞 ASL<53><EFBFBD>嚗𡁏<E59A97><EFBFBD>遙嚗峕㺭<E5B395>桃恣<E6A183><E681A3><EFBFBD><EFBFBD>冽迤蝖?
  • <EFBFBD><20><EFBFBD><E79285><E288AA><EFBFBD>嚗𡁻<E59A97><F0A181BB><EFBFBD><EFBFBD><E79A9C>public schema<6D>唳旿

<EFBFBD><EFBFBD>儭?2025-11-23餈<33><EFBFBD><EFBFBD>霈啣<E99C88>

<EFBFBD><EFBFBD><EFBFBD>

銝箏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝑𥕦<EFBFBD><EFBFBD><EFBFBD>Day 4撘<34><E69298>𡢅<EFBFBD>瘛餃<E7989B><E9A483>唳旿摨𤘪𣈲<F0A498AA><F0A388B2><EFBFBD>

  1. 靽格㺿 literatures 銵剁<E98AB5>瘛餃<E7989B><E9A483><EFBFBD><E586BD><EFBFBD>摮埈挾嚗?
  2. <EFBFBD>𥕦遣 fulltext_screening_tasks 銵?
  3. <EFBFBD>𥕦遣 fulltext_screening_results 銵?

<EFBFBD>宏蝑𣇉裦<EFBFBD>㗇𥋘

*<EFBFBD>?<3F><EFBFBD>A嚗䥪risma Migrate嚗<65><EFBFBD><EFBFBD>嚗?

npx prisma migrate dev --name add_fulltext_screening

**<2A><EFBFBD><E59E8D><EFBFBD>**嚗?

  • Prisma隡𡁜<EFBFBD>霂訫<EFBFBD><EFBFBD>?public schema銝剔<E98A9D><E58994><EFBFBD>銵?
  • <EFBFBD><EFBFBD>敶勗<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
  • 餈嘥<EFBFBD>"蝞<E288AA>芸楛"<22><><EFBFBD><EFBFBD>?

*<EFBFBD>?<3F><EFBFBD>B嚗𡁏<E59A97><F0A1818F>沒QL<51>𡁏𧋦嚗<F0A78BA6><EFBFBD><E6AD87>鍂嚗?

# <20>𥕦遣<F0A595A6>见𢆡餈<F0A286A1><EFBFBD>𡁏𧋦
backend/prisma/migrations/manual_fulltext_screening.sql

# <20><EFBFBD><EFBFBD>宏嚗<E5AE8F><E59A97><EFBFBD><EFBFBD>asl_schema嚗?
Get-Content manual_fulltext_screening.sql | docker exec -i ai-clinical-postgres psql ...

隡睃飵嚗?

  • <EFBFBD>?<3F><EFBFBD>雿?asl_schema嚗䔶<EFBFBD><EFBFBD><EFBFBD>隞騯chema
  • <EFBFBD>?銝滚<E98A9D><E6BB9A>支遙雿?public <20>唳旿
  • <EFBFBD>?摰匧<E691B0><E58CA7><EFBFBD><EFBFBD><EFBFBD><E689BC>虾摰∟恣
  • <EFBFBD>?蝚血<E89D9A>"蝞<E288AA>芸楛"<22><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD>捆霂行<EFBFBD>

1. 靽格㺿 literatures 銵?

<EFBFBD><EFBFBD>摮埈挾嚗?3銝迎<E98A9D>嚗?

<EFBFBD><EFBFBD><EFBFBD>笔𦶢<EFBFBD><EFBFBD>:

  • stage TEXT DEFAULT 'imported' - <20>嗆挾<E59786><E68CBE>扇嚗ǎmported <20>?title_screened <20>?fulltext_pending <20>?fulltext_screened嚗?

PDF蝞∠<EFBFBD>:

  • has_pdf BOOLEAN DEFAULT false - <20>臬炏<E887AC>侨DF
  • pdf_storage_type TEXT - 摮睃<E691AE>蝐餃<E89D90>嚗èss/dify/local嚗?
  • pdf_storage_ref TEXT - 摮睃<E691AE>撘閧鍂嚗ɑey<65>𦎾D嚗?
  • pdf_status TEXT DEFAULT 'pending' - <20><EFBFBD><E59786><EFBFBD>pending/extracting/completed/failed嚗?
  • pdf_uploaded_at TIMESTAMP(3) - 銝𠹺<E98A9D><F0A0B9BA>園𡢿

**<2A><EFBFBD>蝞∠<E89D9E><EFBFBD><E59A97><EFBFBD><EFBFBD>嚗?*:

  • full_text_storage_type TEXT - 摮睃<E691AE>蝐餃<E89D90>嚗èss/dify嚗?
  • full_text_storage_ref TEXT - 摮睃<E691AE>撘閧鍂
  • full_text_url TEXT - 霈輸䔮URL

**<2A><EFBFBD><E586BD><EFBFBD><EFBFBD>?*:

  • full_text_format TEXT - <20><EFBFBD>嚗éarkdown/plaintext嚗?
  • full_text_source TEXT - <20>𣂼<EFBFBD><F0A382BC><EFBFBD>嚗ěougat/pymupdf嚗?
  • full_text_token_count INTEGER - Token<65><EFBFBD>
  • full_text_extracted_at TIMESTAMP(3) - <20>𣂼<EFBFBD><F0A382BC>園𡢿

<EFBFBD><EFBFBD><EFBFBD>:

  • idx_literatures_stage
  • idx_literatures_has_pdf
  • idx_literatures_pdf_status

2. <20>𥕦遣 fulltext_screening_tasks 銵?

隞餃𦛚蝞∠<EFBFBD>銵剁<EFBFBD>摮埈挾<EFBFBD><EFBFBD>𡠺嚗?

  • <EFBFBD><EFBFBD>靽⊥<EFBFBD>嚗䫤id, project_id`
  • <EFBFBD><EFBFBD>滨蔭嚗䫤model_a, model_b, prompt_version`
  • 餈𥕦漲頝蠘葵嚗䫤total_count, processed_count, success_count, failed_count, degraded_count`
  • <EFBFBD>鞉𧋦蝏蠘恣嚗䫤total_tokens, total_cost`
  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>status, started_at, completed_at, estimated_end_at
  • <EFBFBD>躰秤霈啣<EFBFBD>嚗䫤error_message, error_stack`

<EFBFBD>:

  • idx_fulltext_tasks_project_id
  • idx_fulltext_tasks_status
  • idx_fulltext_tasks_created_at

憭㚚睸蝥行<EFBFBD>:

  • project_id <20>?screening_projects(id) ON DELETE CASCADE

3. <20>𥕦遣 fulltext_screening_results 銵?

蝏𤘪<EFBFBD>摮睃<EFBFBD>銵剁<EFBFBD>12摮埈挾璅⊥踎嚗㚁<EFBFBD>摮埈挾<EFBFBD><EFBFBD>𡠺嚗?

  • <EFBFBD><EFBFBD>靽⊥<EFBFBD>嚗䫤task_id, project_id, literature_id`
  • Model A蝏𤘪<E89D8F>嚗䫤model_a_name, model_a_fields(JSONB),model_a_tokens, model_a_cost` 蝑?
  • Model B蝏𤘪<E89D8F>嚗䫤model_b_name, model_b_fields(JSONB),model_b_tokens, model_b_cost` 蝑?
  • 撉諹<EFBFBD>蝏𤘪<EFBFBD>嚗䫤medical_logic_issues(JSONB),evidence_chain_issues` (JSONB)
  • <EFBFBD><EFBFBD><EFBFBD>瘚页<EFBFBD>is_conflict, conflict_severity, conflict_fields, review_priority
  • 鈭箏極憭齿瓲嚗䫤final_decision, final_decision_by, exclusion_reason, review_notes`
  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>processing_status, is_degraded, degraded_model
  • <EFBFBD>航蕭皞舀<EFBFBD><EFBFBD>raw_output_a (JSONB), raw_output_b (JSONB), prompt_version

<EFBFBD>:

  • idx_fulltext_results_task_id
  • idx_fulltext_results_project_id
  • idx_fulltext_results_literature_id
  • idx_fulltext_results_is_conflict
  • idx_fulltext_results_final_decision
  • idx_fulltext_results_review_priority

<EFBFBD><EFBFBD>蝥行<EFBFBD>:

  • unique_project_literature_fulltext (project_id, literature_id)

憭㚚睸蝥行<EFBFBD>:

  • task_id <20>?fulltext_screening_tasks(id) ON DELETE CASCADE
  • project_id <20>?screening_projects(id) ON DELETE CASCADE
  • literature_id <20>?literatures(id) ON DELETE CASCADE

<EFBFBD>宏蝏𤘪<EFBFBD>撉諹<EFBFBD>

-- 撉諹<E69289>銵典<E98AB5>撱?
\dt asl_schema.*

-- 蝏𤘪<E89D8F>嚗?銝芾”
-- <20>?literatures (撌脫凒<E884AB>?
-- <20>?screening_projects
-- <20>?screening_tasks
-- <20>?screening_results
-- <20>?fulltext_screening_tasks (<28>啣遣)
-- <20>?fulltext_screening_results (<28>啣遣)

-- 撉諹<E69289><E8ABB9><EFBFBD>畾?
\d asl_schema.literatures

-- 蝏𤘪<E89D8F>嚗?
-- <20>?stage
-- <20>?has_pdf
-- <20>?full_text_storage_type
-- <20>?full_text_storage_ref
-- <20>?full_text_url
-- <20>?full_text_format
-- ... 蝑?3銝芣鰵摮埈挾

Prisma Client<6E><74><EFBFBD>:

cd backend
npx prisma generate

# 蝏𤘪<E89D8F>嚗尠<E59A97> <20><><EFBFBD><EFBFBD>𣂼<EFBFBD>
# 隞<><E99A9E><EFBFBD>航挪<E888AA><EFBFBD>
# - prisma.aslLiterature
# - prisma.aslFulltextScreeningTask
# - prisma.aslFulltextScreeningResult

<EFBFBD><EFBFBD> Schema<6D>𠉛氖蝑𣇉裦<F0A38789><EFBFBD><E689AF><EFBFBD><EFBFBD>

霈曇恣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>芰頂蝏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD>埈㺭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𠉛氖嚗?
<0A><EFBFBD><E98EBF><EFBFBD> admin_schema      (蝟餌<E89D9F>蝞∠<E89D9E>)
<0A><EFBFBD><E98EBF><EFBFBD> platform_schema   (<28><EFBFBD>蝟餌<E89D9F>)
<0A><EFBFBD><E98EBF><EFBFBD> aia_schema        (AI<41><EFBFBD>)
<0A><EFBFBD><E98EBF><EFBFBD> asl_schema        (AI<41><EFBFBD><E7AE84><EFBFBD>讃) <20>?<3F><EFBFBD><EFBFBD>
<0A><EFBFBD><E98EBF><EFBFBD> pkb_schema        (<28><EFBFBD>摨?
<0A><EFBFBD><E98EBF><EFBFBD> rvw_schema        (摰⊿<E691B0><E28ABF><EFBFBD>)
<0A><EFBFBD><E98EBF><EFBFBD> st_schema         (蝏蠘恣<E8A098><E681A3><EFBFBD>)
<0A><EFBFBD><E98EBF><EFBFBD> dc_schema         (<28>唳旿<E594B3><E697BF><EFBFBD>)
<0A><EFBFBD><E98EBF><EFBFBD> ssa_schema        (<28>瑟𧋦<E7919F><EFBFBD><E8AAA9>?
<0A><EFBFBD><E5A999><EFBFBD> common_schema     (<28><EFBFBD><E7A08D>唳旿)

ASL璅<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>?

<EFBFBD><EFBFBD>仿★ <EFBFBD><EFBFBD>? 霂湔<EFBFBD>
Schema<EFBFBD><EFBFBD> <EFBFBD>?甇<> asl_schema
<EFBFBD><EFBFBD><EFBFBD>㕑”<EFBFBD>賢銁甇<EFBFBD>Schema <EFBFBD>?甇<> 6銝芾”<EFBFBD><EFBFBD><EFBFBD>?asl_schema
瘝⊥<EFBFBD>銵典銁public <EFBFBD>?甇<> <EFBFBD><EFBFBD>瞍?
Prisma Model<65><EFBFBD><EFBFBD> <EFBFBD>?甇<> @@schema("asl_schema")
<EFBFBD><EFBFBD>霈輸䔮頝臬<EFBFBD><EFBFBD> <EFBFBD>?甇<> prisma.aslXxx
憭㚚睸蝥行<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? <EFBFBD>?甇<> <EFBFBD><EFBFBD><EFBFBD>丽K<EFBFBD><EFBFBD><EFBFBD><EFBFBD>众chema銵?

**隞<><E99A9E>蝷箔<E89DB7>**嚗<>迤蝖株挪<E6A0AA>格䲮撘𧶏<E69298>嚗?

// <20>?甇<>嚗𡁻<E59A97><EFBFBD>Prisma Client霈輸䔮asl_schema
const project = await prisma.aslScreeningProject.findUnique({
  where: { id: projectId },
});

const literatures = await prisma.aslLiterature.findMany({
  where: { projectId },
});

const task = await prisma.aslFulltextScreeningTask.create({
  data: { ... },
});

// <20>?<3F>躰秤嚗𡁶凒<F0A181B6>兄QL霈輸䔮public嚗<63><E59A97>隡𡁜<E99AA1><F0A1819C><EFBFBD><EFBFBD><EFBFBD>牐蛹銵其<E98AB5><E585B6>私ublic嚗?
await prisma.$queryRaw`SELECT * FROM public.literatures`;

<EFBFBD><20>芣䔉餈<E49489>宏蝑𣇉裦

撖嫣<EFBFBD>ASL璅<EFBFBD>

<EFBFBD><EFBFBD>蝑𣇉裦嚗𡁶誧蝏凋蝙<EFBFBD><EFBFBD><EFBFBD>沒QL<EFBFBD>𡁏𧋦

**<2A><EFBFBD>**嚗?

  1. <EFBFBD>?Public schema<6D><61><EFBFBD><EFBFBD><EFBFBD><E884A4>䠷䔮憸条<E686B8><E69DA1><EFBFBD><EFBFBD>瘜閗圾<E99697>?
  2. <EFBFBD>?<3F>见𢆡<E8A781>𡁏𧋦<F0A1818F><EFBFBD><E6B8B8><EFBFBD><E585B7><EFBFBD>?
  3. <EFBFBD>?<3F><EFBFBD><E8B8B9><EFBFBD>敶勗<E695B6><E58B97><EFBFBD><E79285>
  4. <EFBFBD>?靘蹂<E99D98><EFBFBD><E99A9E>摰⊥䰻<E28AA5><E4B0BB>恣霈?

**<2A><EFBFBD><EFBFBD><E7989A>**嚗?

# 1. 靽格㺿 Prisma Schema
# backend/prisma/schema.prisma

# 2. 蝻硋<E89DBB><E7A18B>见𢆡SQL<51>𡁏𧋦
# backend/prisma/migrations/manual_xxx.sql

# 3. <20><EFBFBD><E689AF>𡁏𧋦嚗<F0A78BA6><EFBFBD><EFBFBD>asl_schema嚗?
Get-Content manual_xxx.sql | docker exec -i ai-clinical-postgres psql ...

# 4. 撉諹<E69289>蝏𤘪<E89D8F>
docker exec ai-clinical-postgres psql ... -c "\dt asl_schema.*"

# 5. <20><><EFBFBD>Prisma Client
npx prisma generate

# 6. <20>𣂷漱Git
git add .
git commit -m "feat(asl): add xxx tables for xxx feature"

SQL<EFBFBD>𡁏𧋦璅⊥踎嚗?

-- <20><EFBFBD>雿𦡞sl_schema嚗䔶<E59A97>敶勗<E695B6><E58B97><EFBFBD>schema
ALTER TABLE asl_schema.xxx ADD COLUMN IF NOT EXISTS ...;
CREATE TABLE IF NOT EXISTS asl_schema.xxx (...);
CREATE INDEX IF NOT EXISTS idx_xxx ON asl_schema.xxx(...);

撖嫣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

**<2A><EFBFBD><E6A185><EFBFBD><EFBFBD><EFBFBD>?*嚗𡁜<E59A97><E79285><EFBFBD><E69298>穃𣪧<E7A983>?

**撱箄悅<E7AE84><EFBFBD>**嚗<><EFBFBD><E79C8F><EFBFBD>堒𣪧<E5A092>蠘䌊銵<E48C8A><E98AB5>摰𡄯<E691B0>嚗?

  1. <EFBFBD><EFBFBD>?public schema銝剜糓<E5899C><EFBFBD><E8A18C>祆芋<E7A586><EFBFBD>銵?
  2. 撖寞<EFBFBD><EFBFBD>唳旿撌桀<EFBFBD>嚗Ǒpublic` vs 甇<>schema嚗?
  3. <EFBFBD><EFBFBD><EFBFBD>臬炏<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝘餅<EFBFBD><EFBFBD><EFBFBD>
  4. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>抵䌊韐<EFBFBD><EFBFBD>

ASL<EFBFBD><EFBFBD>蝡见㦤嚗?

  • <EFBFBD>㩞 銝滢蜓<E6BBA2><EFBFBD><E586BD><EFBFBD><EFBFBD>隞𡝗芋<F0A19D97><EFBFBD>public銵?
  • <EFBFBD>㩞 銝滚笆<E6BB9A><EFBFBD><E79285><E288AA>唳旿摰匧<E691B0>韐蠘提
  • <EFBFBD>㩞 銝𤘪釣鈭箢sl_schema<6D><61><EFBFBD><EFBFBD>蝔喳<E89D94><E596B3>?

<EFBFBD><EFBFBD> <20>唳旿摰峕㟲<E5B395><EFBFBD>霂?

ASL璅<EFBFBD><EFBFBD>唳旿<EFBFBD>喟頂<EFBFBD>?

asl_schema.screening_projects (憿寧𤌍)
  <20>?1:N
asl_schema.literatures (<28><>讃)
  <20>?1:1                     <20>?1:1
asl_schema.screening_results  asl_schema.fulltext_screening_results
  (<28><><EFBFBD><EFBFBD><EFBFBD><E48185><EFBFBD>蝏𤘪<E89D8F>)           (<28><EFBFBD>憭滨<E686AD>蝏𤘪<E89D8F>)
  <20>?N:1                     <20>?N:1
asl_schema.screening_tasks    asl_schema.fulltext_screening_tasks
  (<28><><EFBFBD><EFBFBD><EFBFBD><E48185><EFBFBD>隞餃𦛚)           (<28><EFBFBD>憭滨<E686AD>隞餃𦛚)

憭㚚睸蝥行<EFBFBD>撉諹<EFBFBD>

-- 撉諹<E69289><E8ABB9><EFBFBD><EFBFBD><EFBFBD><E58CA7><EFBFBD><E6A185><EFBFBD><EFBFBD>asl_schema<6D><61><EFBFBD>
SELECT
  tc.constraint_name,
  tc.table_name,
  kcu.column_name,
  ccu.table_name AS foreign_table_name,
  ccu.column_name AS foreign_column_name
FROM information_schema.table_constraints AS tc
JOIN information_schema.key_column_usage AS kcu
  ON tc.constraint_name = kcu.constraint_name
JOIN information_schema.constraint_column_usage AS ccu
  ON ccu.constraint_name = tc.constraint_name
WHERE tc.constraint_type = 'FOREIGN KEY'
  AND tc.table_schema = 'asl_schema'
ORDER BY tc.table_name;

-- 憸<><E686B8>蝏𤘪<E89D8F>嚗?
-- <20>?<3F><><EFBFBD>丽K<E4B8BD>?foreign_table_name <20>賢銁 asl_schema 銝?
-- <20>?瘝⊥<E7989D>頝究chema撘閧鍂

<EFBFBD><20>喲睸蝏栞捏

<EFBFBD>?ASL璅<E79285>嚗𡁜<E59A97><F0A1819C><EFBFBD>摨?

  1. Schema<EFBFBD>𠉛氖嚗?00%甇<>嚗峕<E59A97><E5B395>㕑”<E39591>賢銁 asl_schema
  2. **<2A>唳旿蝞∠<E89D9E>**嚗𡁏<E59A97><F0A1818F>唳旿瘜<E697BF><E7989C><EFBFBD>?public
  3. **隞<><E99A9E><EFBFBD><E996AB>**嚗𡁏<E59A97><F0A1818F>㕑挪<E39591>株楝敺<E6A59D>迤蝖?
  4. <EFBFBD>宏蝑𣇉裦嚗𡁏<EFBFBD><EFBFBD>沒QL<EFBFBD>𡁏𧋦嚗<EFBFBD><EFBFBD><EFBFBD>典虾<EFBFBD>?

<EFBFBD>𩤃<EFBFBD> 蝟餌<E89D9F>蝥折䔮憸矋<E686B8>Public Schema瘙⊥<E79899>

  1. <EFBFBD><EFBFBD><EFBFBD>扯捶嚗𡁜<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝垾SL<EFBFBD><EFBFBD>
  2. 敶勗<EFBFBD><EFBFBD><EFBFBD>嚗鋫IA<EFBFBD><EFBFBD>KB<EFBFBD><EFBFBD>latform璅<EFBFBD>
  3. <EFBFBD><EFBFBD><EFBFBD>嚗𡁜<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  4. ASL蝑𣇉裦嚗帋<EFBFBD><EFBFBD>私ublic嚗𣬚恣憟質䌊撌?

<EFBFBD><EFBFBD><><E69298>睲犖<E79DB2><EFBFBD><E480B9>?

**憒<><E68692>雿䭾糓ASL璅<E79285><EFBFBD><E69298>𤏸<EFBFBD>?*嚗?

  • <EFBFBD>?蝏抒賒靽脲<E99DBD>敶枏<E695B6><E69E8F><EFBFBD>chema<6D>𠉛氖摰噼殿
  • <EFBFBD>?雿輻鍂<E8BCBB>见𢆡SQL<51>𡁏𧋦餈𥡝<E9A488><F0A5A19D>唳旿摨栞<E691A8>蝘?
  • <EFBFBD>?<3F><><EFBFBD>㕑”<E39591><EFBFBD>撱箏銁 asl_schema
  • <EFBFBD>?銝滩<E98A9D>撠肽<E692A0><EFBFBD><E79A9C> public schema

**憒<><E68692>雿䭾糓<E4ADBE><EFBFBD><E79285><EFBFBD><E69298>𤏸<EFBFBD>?*嚗?

  • <EFBFBD>椬 璉<><E79289>亥䌊撌望芋<E69C9B><EFBFBD>Schema<6D>𠉛氖<F0A0899B><EFBFBD>
  • <EFBFBD><20><EFBFBD><E596B3>臬炏<E887AC><E7828F><EFBFBD><E996AC><EFBFBD>?public 銝剔<E98A9D><E58994><EFBFBD>銵?
  • <EFBFBD><20><><EFBFBD><EFBFBD>SL<53><4C><EFBFBD>蝘餌<E89D98><E9A48C><EFBFBD><E4BC90>见𢆡SQL嚗?
  • <EFBFBD>椬 銝滩<E98A9D>靘肽<E99D98>ASL<53><EFBFBD><EFBFBD><E79A9C>public

<EFBFBD><EFBFBD> <20><EFBFBD><E8A9A8><EFBFBD>

  • [蝟餌<E89D9F><E9A48C><EFBFBD>霈曇恣 - <20>唳旿摨𤘪沲<F0A498AA><E6B2B2><EFBFBD>筕(../../../../00-蝟餌<E89D9F><E9A48C><EFBFBD>霈曇恣/03-<2D>唳旿摨𤘪沲<F0A498AA><E6B2B2><EFBFBD>?md)
  • [ASL璅<E79285> - <20>唳旿摨栞挽霈(../../02-<2D><><EFBFBD>航挽霈?01-<2D>唳旿摨栞挽霈?md)
  • [鈭穃<E988AD><E7A983><EFBFBD><E7AC94>𤏸<EFBFBD><F0A48FB8><EFBFBD>(../../../../04-撘<><E69298>𤏸<EFBFBD><F0A48FB8>?08-鈭穃<E988AD><E7A983><EFBFBD><E7AC94>𤏸<EFBFBD><F0A48FB8>?md)
  • [Day 2-3撘<33><E69298>𤏸扇敶騟(./2025-11-22_Day2-Day3_LLM<4C>滚𦛚銝𡡞<E98A9D><EFBFBD>頂蝏笔<E89D8F><E7AC94>?md)

<EFBFBD><EFBFBD>﹝蝏湔擪嚗?

  • <EFBFBD>唳旿摨梶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>湔𧒄<EFBFBD>湔鰵
  • <EFBFBD>𤑳緵<EFBFBD>圈䔮憸䀹𧒄霈啣<EFBFBD>
  • 摰𡁏<EFBFBD>摰⊥䰻Schema<EFBFBD>𠉛氖<EFBFBD><EFBFBD>

**<2A><><EFBFBD>擧凒<E693A7>?*嚗?025-11-23
**<2A>湔鰵鈭?*嚗鋫SL撘<4C><E69298>穃𣪧<E7A983>? 銝𧢲活摰⊥䰻嚗帋<EFBFBD>甈⊥㺭<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?