Files
AIclinicalresearch/docs/04-开发规范/01-数据库设计规范.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

11 KiB
Raw Blame History

<EFBFBD>唳旿摨栞挽霈∟<EFBFBD><EFBFBD>?

*<EFBFBD><EFBFBD>𧋦嚗? v2.0
<EFBFBD><EFBFBD><EFBFBD>擧凒<EFBFBD><EFBFBD> 2025-11-06
<EFBFBD>唳旿摨橒<EFBFBD> PostgreSQL 15+
*ORM嚗? Prisma
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>凒嚗? 撟喳蝱撅?+ <20><EFBFBD>撅?+ 銝𡁜𦛚璅<E79285>撅?


<EFBFBD><EFBFBD> <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>?

*霈曇恣<EFBFBD><EFBFBD>嚗?

  • <EFBFBD>?<3F>萄儐蝚砌<E89D9A><E7A08C><EFBFBD><EFBFBD>嚗?NF嚗?
  • <EFBFBD>?雿輻鍂SERIAL雿靝蛹銝駁睸嚗<E79DB8><EFBFBD>啗䌊憓痹<E68693><E797B9><EFBFBD><E689AF>游末嚗?
  • <EFBFBD>?<3F><><EFBFBD>㕑”<E39591><E2809D>鉄created_at<61>吴pdated_at<61>園𡢿<E59C92>?
  • <EFBFBD>?<3F><EFBFBD>銵其蝙<E585B6>刻蔓<E588BB>𣳇膄嚗<E88684><E59A97><EFBFBD>羮eleted_at摮埈挾嚗?
  • <EFBFBD>?憭㚚睸蝥行<E89DA5>雿輻鍂ON DELETE CASCADE
  • <EFBFBD>?<3F>𤩺<EFBFBD>摮埈挾<E59F88><EFBFBD>摮睃<E691AE><EFBFBD><E59A97><EFBFBD><EFBFBD><EFBFBD>灸crypt嚗?

<EFBFBD><EFBFBD>儭?Schema<6D>𠉛氖蝑𣇉裦 潃?<3F><><EFBFBD><EFBFBD>

銝箔<EFBFBD><EFBFBD><EFBFBD><EFBFBD>chema<EFBFBD>𠉛氖

*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗?

  1. <EFBFBD>?**璅<E79285><E288AA><EFBFBD><E7A589>?*嚗𡁏<E59A97>銝芯<E98A9D><E88AAF>⊥芋<E28AA5><EFBFBD><E59F88><EFBFBD><E7A589><EFBFBD>chema
  2. <EFBFBD>?<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>函蔡嚗𡁜虾隞亙<EFBFBD><EFBFBD>砍紡<EFBFBD><EFBFBD>銝芣芋<EFBFBD><EFBFBD><EFBFBD>唳旿
  3. <EFBFBD>?**<2A><EFBFBD><E88880><EFBFBD><E7A589><EFBFBD><EFBFBD>?*嚗𡁜虾隞亙<E99A9E><E4BA99>砌漱隞䀹<E99A9E>銝芣芋<E88AA3>?
  4. <EFBFBD>?<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𠉛氖嚗𡁜虾隞乩蛹銝滚<EFBFBD>Schema霈曄蔭銝滚<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
  5. <EFBFBD>?**<2A><EFBFBD><E8B8B9><EFBFBD><E8B3A2><EFBFBD>**嚗帋<E59A97><E5B88B>峕芋<E5B395>堒虾隞交<E99A9E><E4BAA4><EFBFBD><E8A9A8><EFBFBD><EFBFBD>?

Schema<EFBFBD><EFBFBD><EFBFBD><EFBFBD>

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<EFBFBD>𥕦遣

-- <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靘肽<EFBFBD><EFBFBD><EFBFBD> 潃?敹<><EFBFBD><EFBFBD>

<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>韏吔<EFBFBD>

-- <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><EFBFBD><EFBFBD><EFBFBD>韏吔<EFBFBD>

-- <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>嚗?

<0A><EFBFBD>1嚗𡁻<E59A97><EFBFBD>user_id<69><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>唳旿

<0A><EFBFBD>2嚗𡁜<E59A97><F0A1819C><EFBFBD><E585B6>D摮㛖泵銝?
- <20>刻”銝剖<E98A9D><E58996><EFBFBD>隞𡝗芋<F0A19D97><EFBFBD>銝𡁜𦛚ID嚗ĀARCHAR嚗?
- 銝滚遣蝡见<E89DA1><E8A781><EFBFBD>蝟?
- <20><EFBFBD><E585B8><EFBFBD>撉諹<E69289>ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

<EFBFBD><EFBFBD> <20><EFBFBD><EFBFBD><E996AB>

銵典𦶢<EFBFBD>?

*<EFBFBD><EFBFBD>嚗?

  • 撠誩<EFBFBD>摮埈<EFBFBD>
  • 銝见<EFBFBD>蝥踹<EFBFBD><EFBFBD>?
  • 憭齿㺭敶<EFBFBD>
  • Schema<EFBFBD><EFBFBD><EFBFBD>䰻霂𧒄雿輻鍂嚗?

*蝷箔<EFBFBD>嚗?

-- <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>蝚?

摮埈挾<EFBFBD><EFBFBD>

*<EFBFBD><EFBFBD>嚗?

  • 撠誩<EFBFBD>摮埈<EFBFBD>
  • 銝见<EFBFBD>蝥踹<EFBFBD><EFBFBD>?
  • 霂凋<EFBFBD><EFBFBD>

*蝷箔<EFBFBD>嚗?

-- <20>?甇<>
user_id
created_at
project_name
is_active

-- <20>?<3F>躰秤
userId        -- 撽澆陸
createdat     -- 瘝⊥<E7989D>銝见<E98A9D>蝥?
prjName       -- 蝻拙<E89DBB>銝齿<E98A9D><E9BDBF>?

<EFBFBD><EFBFBD><EFBFBD>

*<EFBFBD><EFBFBD>嚗? `idx_銵典<E98AB5>_摮埈挾<E59F88>

*蝷箔<EFBFBD>嚗?

-- <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>?

憭㚚睸<EFBFBD><EFBFBD>

*<EFBFBD><EFBFBD>嚗? fk_銵典<EFBFBD>_<EFBFBD><EFBFBD>銵典<EFBFBD>

*蝷箔<EFBFBD>嚗?

-- <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 ...      -- 憭芷鵭

<EFBFBD><EFBFBD> <20>𡁶鍂摮埈挾 潃?敹<><EFBFBD><E29786>

<EFBFBD><EFBFBD><EFBFBD>㕑”敹<EFBFBD><EFBFBD><EFBFBD>

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
);

<EFBFBD><EFBFBD>銵典<EFBFBD><EFBFBD><EFBFBD>鉄嚗<EFBFBD><EFBFBD>𣳇膄嚗?

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;

<EFBFBD><EFBFBD><EFBFBD><EFBFBD>銵典<EFBFBD>憿餃<EFBFBD><EFBFBD>?

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
);

<EFBFBD><EFBFBD><E89D9D>霈曇恣閫<E681A3><E996AB>

<EFBFBD>◆瘛餃<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>畾?

1. 銝駁睸

-- <20>芸𢆡<E88AB8>𥕦遣嚗峕<E59A97><E5B395><EFBFBD><EFBFBD>见𢆡瘛餃<E7989B>
id SERIAL PRIMARY KEY

2. 憭㚚睸摮埈挾

-- 敹<>◆瘛餃<E7989B>嚗峕<E59A97>擃𧁓OIN<49><EFBFBD>
CREATE INDEX idx_projects_user_id ON asl_schema.literature_projects(user_id);

3. 撣貊鍂<E8B28A>亥砭摮埈挾

-- 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>摮埈挾

-- email蝑匧𣈲銝<F0A388B2>摮埈挾
CREATE UNIQUE INDEX idx_users_email ON platform_schema.users(email);

憭滚<EFBFBD><EFBFBD>

*<EFBFBD><EFBFBD>嚗?

  • 擃㗛<EFBFBD><EFBFBD><EFBFBD><EFBFBD>亥砭雿輻鍂憭滚<EFBFBD><EFBFBD>
  • <EFBFBD><EFBFBD>撣豢䰻霂<EFBFBD>摮埈挾<EFBFBD>曉銁<EFBFBD>漤𢒰
  • 憭滚<EFBFBD><EFBFBD><EFBFBD><EFBFBD>憭?銝芸<E98A9D>畾?

*蝷箔<EFBFBD>嚗?

-- <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);

<EFBFBD><EFBFBD> 憭㚚睸蝥行<E89DA5><EFBFBD><E996AB>

ON DELETE蝑𣇉裦

*<EFBFBD><EFBFBD>嚗?

-- <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><E79487><EFBCB7>?

憭㚚睸蝝<EFBFBD>

*<EFBFBD><EFBFBD>嚗? <20><><EFBFBD><EFBFBD><E58CA7><EFBFBD>憿餅溶<E9A485>删揣撘?

-- <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><E89D9D>
CREATE INDEX idx_items_project_id ON asl_schema.literature_items(project_id);

<EFBFBD>?<3F><EFBFBD>隡睃<E99AA1><EFBFBD><E996AB>

憭扯”<EFBFBD><EFBFBD>躹嚗<EFBFBD><EFBFBD><EFBFBD>

*<EFBFBD><EFBFBD><EFBFBD>箸艶嚗? 撟游<E6929F><E6B8B8>?> 100銝<30>扇敶?

-- <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');

<EFBFBD>唳旿敶埝﹝蝑𣇉裦

-- <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';

<EFBFBD><EFBFBD> 摰匧<E691B0><EFBFBD><E996AB>

<EFBFBD>𤩺<EFBFBD>摮埈挾<EFBFBD><EFBFBD>

-- 撖<><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>

<EFBFBD>唳旿<EFBFBD><EFBFBD>

-- <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';

<EFBFBD><EFBFBD> <20>唳旿蝐餃<E89D90><E9A483>㗇𥋘

撣貊鍂摮埈挾蝐餃<EFBFBD>

<EFBFBD><EFBFBD>? <EFBFBD><EFBFBD>蝐餃<EFBFBD> 霂湔<EFBFBD>
銝駁睸 SERIAL <EFBFBD>湔㺭<EFBFBD><EFBFBD>
憭㚚睸 INTEGER 銝𦒘蜓<EFBFBD>桃掩<EFBFBD><EFBFBD><EFBFBD>?
<EFBFBD><EFBFBD><EFBFBD>? VARCHAR(N) N<500嚗<30><E59A97>憪枏<E686AA><E69E8F><EFBFBD><EFBFBD>憸?
<EFBFBD><EFBFBD><EFBFBD>? TEXT <EFBFBD>𣳇鵭摨阡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>餈啜<EFBFBD><EFBFBD><EFBFBD>摰?
<EFBFBD><EFBFBD><EFBFBD>? BOOLEAN true/false
<EFBFBD><EFBFBD><EFBFBD>園𡢿 TIMESTAMP 蝎曄<EFBFBD>唳神蝘?
<EFBFBD><EFBFBD> DECIMAL(10,2) <EFBFBD><EFBFBD>蝎曉漲<EFBFBD><EFBFBD>
JSON JSONB <EFBFBD><EFBFBD><EFBFBD>嚗峕<EFBFBD><EFBFBD><EFBFBD>游末

摮埈挾<EFBFBD>踹漲撱箄悅

-- <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><>

<EFBFBD>?璉<><E79289><EFBFBD><E4BAA4>?

霈曇恣<EFBFBD>啗”<EFBFBD><EFBFBD>憿餅<EFBFBD><EFBFBD><EFBFBD>

  • 銵典<EFBFBD>蝚血<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?銝见<E98A9D>蝥?憭齿㺭嚗?
  • 雿輻鍂甇<EFBFBD><EFBFBD><EFBFBD>chema嚗īlatform/aia/asl/pkb蝑㚁<E89D91>
  • <EFBFBD><EFBFBD>鉄id銝駁睸嚗𠄎ERIAL PRIMARY KEY嚗?
  • <EFBFBD><EFBFBD>鉄created_at<EFBFBD>吴pdated_at<EFBFBD>園𡢿<EFBFBD>?
  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD>銵典<EFBFBD><EFBFBD>哎ser_id憭㚚睸
  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>伨N DELETE蝑𣇉裦
  • <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>瘛餃<EFBFBD><EFBFBD>揣撘?
  • 撣貊鍂<EFBFBD>亥砭摮埈挾瘛餃<EFBFBD><EFBFBD>揣撘?
  • 憭㚚睸蝥行<EFBFBD>蝚血<EFBFBD>頝沒chema靘肽<EFBFBD><EFBFBD><EFBFBD>
  • <EFBFBD>𤩺<EFBFBD>摮埈挾撌脣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?

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

*<EFBFBD><EFBFBD>嚗?

*璅⊥踎嚗?

  • [<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
蝏湔擪鈭綽<EFBFBD> <20><><EFBFBD>舀沲<E88880><E6B2B2><EFBFBD>
*<EFBFBD><EFBFBD>𧋦嚗? v2.0