-- ============================================================================
-- 行业数据表创建脚本 (industry_data)
-- ============================================================================
-- 
-- 表名: industry_data
-- 用途: 存储国有企业行业评价指标数据
-- 
-- 该表用于存储不同行业、不同范围（全行业/大型企业等）的评价指标基准值数据。
-- 数据来源于 JSON 格式的评价指标文件，包含多个维度的指标及其基准值。
-- 
-- 数据结构说明:
-- - 每条记录代表一个行业在特定范围和年份下的评价指标配置
-- - dimensions 字段存储 JSON 格式的多维度指标数据，包括：
--   * 盈利回报指标（净资产收益率、营业收入利润率等）
--   * 资产运营指标（总资产周转率、应收账款周转率等）
--   * 风险防控指标（资产负债率、现金流动负债比率等）
--   * 持续发展指标（研发经费投入强度、全员劳动生产率等）
--   * 补充指标（营业现金比率、国有资本回报率等）
-- 
-- 创建日期: 2024
-- ============================================================================

-- 删除已存在的表（谨慎使用，会删除所有数据）
-- DROP TABLE IF EXISTS industry_data;

-- 创建行业数据表
CREATE TABLE IF NOT EXISTS industry_data (
    -- ========================================================================
    -- 主键字段
    -- ========================================================================
    
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    -- 说明: 记录的唯一标识符，自动递增
    -- 类型: INTEGER
    -- 约束: PRIMARY KEY, AUTOINCREMENT
    -- 用途: 作为表的主键，用于唯一标识每条记录，便于数据管理和关联查询
    
    
    -- ========================================================================
    -- 业务字段
    -- ========================================================================
    
    industry TEXT NOT NULL,
    -- 说明: 行业名称
    -- 类型: TEXT
    -- 约束: NOT NULL（必填）
    -- 示例值: "煤炭工业"、"石油石化工业"、"冶金工业"、"建材工业"等
    -- 用途: 标识数据所属的行业分类，用于按行业查询和统计
    
    
    scope TEXT NOT NULL,
    -- 说明: 适用范围
    -- 类型: TEXT
    -- 约束: NOT NULL（必填）
    -- 示例值: "全行业"、"大型企业"、"中型企业"、"小型企业"等
    -- 用途: 标识该评价指标适用的企业规模范围，不同规模的企业有不同的基准值
    
    
    dimensions TEXT NOT NULL,
    -- 说明: 评价指标维度数据（JSON 格式）
    -- 类型: TEXT（存储 JSON 字符串）
    -- 约束: NOT NULL（必填）
    -- 格式: JSON 数组，每个元素包含一个维度的指标数据
    -- 
    -- JSON 结构示例:
    -- [
    --   {
    --     "name": "盈利回报指标",
    --     "items": [
    --       {
    --         "name": "净资产收益率",
    --         "unit": "%",
    --         "benchmarks": {
    --           "excellent": 19.9,  // 优秀值
    --           "good": 14.6,      // 良好值
    --           "average": 11.0,  // 中等值
    --           "low": 6.2,       // 较低值
    --           "poor": -0.6       // 较差值
    --         }
    --       }
    --     ]
    --   }
    -- ]
    -- 
    -- 维度类型:
    -- 1. 盈利回报指标: 净资产收益率、营业收入利润率、总资产报酬率、盈余现金保障倍数
    -- 2. 资产运营指标: 总资产周转率、应收账款周转率、流动资产周转率、两金占流动资产比重
    -- 3. 风险防控指标: 资产负债率、现金流动负债比率、带息负债比率、已获利息倍数
    -- 4. 持续发展指标: 研发经费投入强度、全员劳动生产率、经济增加值率、国有资本保值增值率
    -- 5. 补充指标: 营业现金比率、国有资本回报率、EBITDA率、百元收入支付的成本费用等
    -- 
    -- 用途: 存储完整的评价指标体系，包括各维度的指标名称、单位和五个等级的基准值
    -- 注意: 使用 SQLite 的 JSON 函数可以查询和操作该字段中的 JSON 数据
    
    
    year TEXT,
    -- 说明: 数据年份
    -- 类型: TEXT（文本类型，可存储年份字符串）
    -- 约束: 可为空（NULL）
    -- 示例值: "2024"、"2024年"、"2024年度"等
    -- 用途: 标识数据所属的年份，用于按年份查询和区分不同年度的数据
    -- 注意: 使用 TEXT 类型可以灵活存储各种年份格式，如带后缀的"2024年"
    
    
    -- ========================================================================
    -- 系统字段
    -- ========================================================================
    
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    -- 说明: 记录创建时间
    -- 类型: TIMESTAMP
    -- 约束: DEFAULT CURRENT_TIMESTAMP（默认值为当前时间）
    -- 格式: YYYY-MM-DD HH:MM:SS
    -- 用途: 记录数据插入数据库的时间，用于数据审计和追踪
    -- 注意: 该字段在插入记录时自动设置为当前时间，无需手动指定
);

-- ============================================================================
-- 索引创建
-- ============================================================================

-- 创建复合索引：年份、行业、范围
-- 用途: 优化按年份、行业和范围组合查询的性能
-- 适用场景: 
--   - 查询特定年份、特定行业、特定范围的数据
--   - 按年份和行业进行数据统计和分析
--   - 多条件组合查询
CREATE INDEX IF NOT EXISTS idx_industry_scope 
ON industry_data(year, industry, scope);

-- ============================================================================
-- 使用说明
-- ============================================================================
-- 
-- 1. 查询示例:
--    -- 查询2024年煤炭工业全行业的评价指标
--    SELECT * FROM industry_data 
--    WHERE year = '2024' AND industry = '煤炭工业' AND scope = '全行业';
-- 
--    -- 查询特定年份所有行业的数据
--    SELECT industry, scope, json_array_length(dimensions) as dimension_count
--    FROM industry_data 
--    WHERE year = '2024';
-- 
--    -- 从 JSON 字段中提取特定指标
--    SELECT industry, scope,
--           json_extract(dimensions, '$[0].items[0].name') as first_indicator
--    FROM industry_data
--    WHERE year = '2024';
-- 
-- 2. 数据插入示例:
--    INSERT INTO industry_data (industry, scope, dimensions, year)
--    VALUES (
--        '煤炭工业',
--        '全行业',
--        '[{"name": "盈利回报指标", "items": [...]}]',
--        '2024'
--    );
-- 
-- 3. 注意事项:
--    - dimensions 字段存储的是 JSON 字符串，需要使用 json.dumps() 转换
--    - 查询 JSON 字段时可以使用 SQLite 的 JSON 函数（需要 SQLite 3.9.0+）
--    - year 字段为 TEXT 类型，查询时注意使用字符串比较
--    - 删除表前请备份数据
-- 
-- ============================================================================
