-- 机构/委办局表 CREATE TABLE IF NOT EXISTS organizations ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR(100) NOT NULL, slug VARCHAR(50) NOT NULL UNIQUE, short_name VARCHAR(20), logo_url TEXT, description TEXT, sort_order INT NOT NULL DEFAULT 0, is_active BOOLEAN NOT NULL DEFAULT true, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW() ); -- 给用户表添加机构关联 ALTER TABLE users ADD COLUMN IF NOT EXISTS org_id UUID REFERENCES organizations(id); CREATE INDEX IF NOT EXISTS idx_users_org ON users(org_id); -- 给应用表添加机构关联(应用可属于某个机构,NULL表示全局通用应用) ALTER TABLE applications ADD COLUMN IF NOT EXISTS org_id UUID REFERENCES organizations(id); CREATE INDEX IF NOT EXISTS idx_apps_org ON applications(org_id); -- 给知识库添加机构关联 ALTER TABLE knowledge_bases ADD COLUMN IF NOT EXISTS org_id UUID REFERENCES organizations(id); -- 种子数据:常用机构 INSERT INTO organizations (id, name, slug, short_name, description, sort_order) VALUES ('a0000000-0000-0000-0000-000000000001', '科学技术局', 'keji', '科技局', '负责全市科技发展规划、科技项目管理、高新技术企业培育等工作', 1), ('a0000000-0000-0000-0000-000000000002', '公安局', 'gongan', '公安局', '负责全市社会治安管理、户籍管理、交通管理、网络安全等工作', 2), ('a0000000-0000-0000-0000-000000000003', '发展和改革局', 'fagai', '发改局', '负责全市国民经济和社会发展战略、规划、投资管理等工作', 3), ('a0000000-0000-0000-0000-000000000004', '教育局', 'jiaoyu', '教育局', '负责全市教育事业发展规划、基础教育、职业教育等工作', 4), ('a0000000-0000-0000-0000-000000000005', '人力资源和社会保障局', 'renshe', '人社局', '负责全市人力资源开发、就业创业、社会保障等工作', 5), ('a0000000-0000-0000-0000-000000000006', '财政局', 'caizheng', '财政局', '负责全市财政收支管理、预算管理、政府采购等工作', 6), ('a0000000-0000-0000-0000-000000000007', '住房和城乡建设局', 'zhujian', '住建局', '负责全市住房保障、城乡建设、房地产管理等工作', 7), ('a0000000-0000-0000-0000-000000000008', '市场监督管理局', 'shijianju', '市监局', '负责全市市场监管、食品安全、知识产权保护等工作', 8) ON CONFLICT (id) DO NOTHING; -- 将现有用户关联到科技局 UPDATE users SET org_id = 'a0000000-0000-0000-0000-000000000001' WHERE org_id IS NULL; -- 将现有应用关联到科技局 UPDATE applications SET org_id = 'a0000000-0000-0000-0000-000000000001' WHERE org_id IS NULL;