# Desktop 数据字典（SQLite）

来源：`src-tauri/sql/desktop_schema.sql`。

说明：
- `可空` 基于建表语句推导（`NOT NULL`/主键为“否”）。
- `默认值` 来自 `DEFAULT ...`。
- `键` 仅展示列级 `PK/UNIQUE`（表级主键会同步标记到对应列）。

## `sys_schema_version`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：未定义额外索引

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `name` | `TEXT` | 否 | `-` | PK | 名称。 |
| `version` | `INTEGER` | 否 | `-` | - | schema 版本号。 |
| `updated_at` | `TEXT` | 否 | `-` | - | 更新时间（TEXT 时间）。 |

## `stock_basic_info`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：`idx_stock_basic_name`(stock_name)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `stock_name` | `TEXT` | 否 | `''` | - | 证券简称。 |
| `market` | `TEXT` | 否 | `'A'` | - | 市场代码（A/H/U）。 |
| `industry` | `TEXT` | 否 | `''` | - | 一级行业。 |
| `market_cap` | `TEXT` | 否 | `''` | - | 市值（当前存 TEXT）。 |
| `pe` | `TEXT` | 否 | `''` | - | 市盈率文本值。 |
| `pb` | `TEXT` | 否 | `''` | - | 市净率文本值。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_observed`（market.db）

- 主键：`(stock_code, market)`
- 索引：`idx_observed_stock_time`(last_observed_at DESC)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `last_observed_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 最近加入观察池时间。 |

## `stock_trade_calendar`（market.db）

- 主键：`(market, trade_date)`
- 索引：未定义额外索引

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `market` | `TEXT` | 否 | `-` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `is_open` | `INTEGER` | 否 | `1` | - | 是否开市（0/1）。 |
| `pre_trade_date` | `TEXT` | 是 | `-` | - | 前一交易日。 |
| `next_trade_date` | `TEXT` | 是 | `-` | - | 后一交易日。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_tech_indicator_daily`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_indicator_lookup`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `payload_json` | `TEXT` | 否 | `-` | - | JSON 载荷字符串。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_market_snapshot`（market.db）

- 主键：`(stock_code, market)`
- 索引：未定义额外索引

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `payload_json` | `TEXT` | 否 | `-` | - | JSON 载荷字符串。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `sync_status`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：未定义额外索引

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `task_key` | `TEXT` | 否 | `-` | PK | 任务唯一键。 |
| `last_success_at` | `TEXT` | 是 | `-` | - | 最近成功时间。 |
| `last_attempt_at` | `TEXT` | 是 | `-` | - | 最近尝试时间。 |
| `last_cursor` | `TEXT` | 是 | `-` | - | 增量同步游标。 |
| `retry_count` | `INTEGER` | 否 | `0` | - | 重试次数。 |
| `last_error` | `TEXT` | 是 | `-` | - | 最近一次错误信息。 |

## `sync_task_log`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：未定义额外索引

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `id` | `INTEGER` | 否 | `-` | PK | 自增主键。 |
| `task_key` | `TEXT` | 否 | `-` | - | 任务唯一键。 |
| `status` | `TEXT` | 否 | `-` | - | 状态字段（字符串枚举）。 |
| `message` | `TEXT` | 是 | `-` | - | 附加说明/错误描述。 |
| `created_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 创建时间（TEXT 时间）。 |

## `sync_import_batch`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：未定义额外索引

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `id` | `INTEGER` | 否 | `-` | PK | 自增主键。 |
| `source_path` | `TEXT` | 否 | `-` | - | 导入源文件路径。 |
| `status` | `TEXT` | 否 | `-` | - | 状态字段（字符串枚举）。 |
| `manifest_json` | `TEXT` | 是 | `-` | - | 导入清单 JSON 字符串。 |
| `message` | `TEXT` | 是 | `-` | - | 附加说明/错误描述。 |
| `created_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 创建时间（TEXT 时间）。 |

## `stock_indicator_macd`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_macd_trade_date`(trade_date)；`idx_macd_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `dif` | `REAL` | 是 | `-` | - | MACD DIF。 |
| `dea` | `REAL` | 是 | `-` | - | MACD DEA。 |
| `macd` | `REAL` | 是 | `-` | - | MACD 柱值。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_indicator_kdj`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_kdj_trade_date`(trade_date)；`idx_kdj_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `kdj_k` | `REAL` | 是 | `-` | - | KDJ K。 |
| `kdj_d` | `REAL` | 是 | `-` | - | KDJ D。 |
| `kdj_j` | `REAL` | 是 | `-` | - | KDJ J。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_indicator_boll`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_boll_trade_date`(trade_date)；`idx_boll_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `boll_upper` | `REAL` | 是 | `-` | - | BOLL 上轨。 |
| `boll_middle` | `REAL` | 是 | `-` | - | BOLL 中轨。 |
| `boll_lower` | `REAL` | 是 | `-` | - | BOLL 下轨。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_indicator_rsi`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_rsi_trade_date`(trade_date)；`idx_rsi_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `rsi6` | `REAL` | 是 | `-` | - | RSI6。 |
| `rsi12` | `REAL` | 是 | `-` | - | RSI12。 |
| `rsi24` | `REAL` | 是 | `-` | - | RSI24。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_indicator_wr`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_wr_trade_date`(trade_date)；`idx_wr_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `wr6` | `REAL` | 是 | `-` | - | WR6。 |
| `wr10` | `REAL` | 是 | `-` | - | WR10。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_indicator_cci`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_cci_trade_date`(trade_date)；`idx_cci_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `cci` | `REAL` | 是 | `-` | - | CCI。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_indicator_bias`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_bias_trade_date`(trade_date)；`idx_bias_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `bias6` | `REAL` | 是 | `-` | - | BIAS6。 |
| `bias12` | `REAL` | 是 | `-` | - | BIAS12。 |
| `bias24` | `REAL` | 是 | `-` | - | BIAS24。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_indicator_psa`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_psa_trade_date`(trade_date)；`idx_psa_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `psa` | `REAL` | 是 | `-` | - | PSA。 |
| `psma` | `REAL` | 是 | `-` | - | PSMA。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_indicator_roc`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_roc_trade_date`(trade_date)；`idx_roc_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `roc` | `REAL` | 是 | `-` | - | ROC。 |
| `rocma` | `REAL` | 是 | `-` | - | ROCMA。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_indicator_dmi`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_dmi_trade_date`(trade_date)；`idx_dmi_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `dmi_pdi` | `REAL` | 是 | `-` | - | DMI +DI。 |
| `dmi_mdi` | `REAL` | 是 | `-` | - | DMI -DI。 |
| `dmi_adx` | `REAL` | 是 | `-` | - | DMI ADX。 |
| `dmi_adxr` | `REAL` | 是 | `-` | - | DMI ADXR。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_indicator_cr`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_cr_trade_date`(trade_date)；`idx_cr_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `cr` | `REAL` | 是 | `-` | - | CR。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_indicator_ema`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_ema_trade_date`(trade_date)；`idx_ema_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `ema5` | `REAL` | 是 | `-` | - | EMA5。 |
| `ema10` | `REAL` | 是 | `-` | - | EMA10。 |
| `ema13` | `REAL` | 是 | `-` | - | EMA13。 |
| `ema20` | `REAL` | 是 | `-` | - | EMA20。 |
| `ema30` | `REAL` | 是 | `-` | - | EMA30。 |
| `ema34` | `REAL` | 是 | `-` | - | EMA34。 |
| `ema60` | `REAL` | 是 | `-` | - | EMA60。 |
| `ema120` | `REAL` | 是 | `-` | - | EMA120。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `mkt_ema_tracker_record`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_mkt_ema_tracker_market_trade_deviation`(market, trade_date, deviation_pct, stock_code)；`idx_mkt_ema_tracker_trade_date`(trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `close_price` | `REAL` | 否 | `-` | - | 命中时使用的收盘价 / 基准价。 |
| `ema120` | `REAL` | 否 | `-` | - | 对应交易日的 EMA120。 |
| `deviation_pct` | `REAL` | 否 | `-` | - | 收盘价与 EMA120 的偏离百分比。 |
| `source` | `TEXT` | 否 | `''` | - | 物化来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `stock_indicator_ma`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_ma_trade_date`(trade_date)；`idx_ma_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `ma5` | `REAL` | 是 | `-` | - | MA5。 |
| `ma10` | `REAL` | 是 | `-` | - | MA10。 |
| `ma20` | `REAL` | 是 | `-` | - | MA20。 |
| `ma30` | `REAL` | 是 | `-` | - | MA30。 |
| `ma60` | `REAL` | 是 | `-` | - | MA60。 |
| `source` | `TEXT` | 否 | `''` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `api_tushare_stk_factor_pro`（market.db）

- 主键：`(stock_code, market, trade_date)`
- 索引：`idx_api_tushare_stk_factor_pro_trade_date`(trade_date)；`idx_api_tushare_stk_factor_pro_stock_date`(stock_code, market, trade_date)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `stock_code` | `TEXT` | 否 | `-` | PK | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | PK | 市场代码（A/H/U）。 |
| `trade_date` | `TEXT` | 否 | `-` | PK | 交易日（yyyy-MM-dd）。 |
| `open` | `REAL` | 是 | `-` | - | 开盘价。 |
| `high` | `REAL` | 是 | `-` | - | 最高价。 |
| `low` | `REAL` | 是 | `-` | - | 最低价。 |
| `close` | `REAL` | 是 | `-` | - | 收盘价。 |
| `volume` | `REAL` | 是 | `-` | - | 成交量。 |
| `amount` | `REAL` | 是 | `-` | - | 成交额。 |
| `amplitude` | `REAL` | 是 | `-` | - | 振幅。 |
| `pct_chg` | `REAL` | 是 | `-` | - | 涨跌幅。 |
| `change_amount` | `REAL` | 是 | `-` | - | 涨跌额。 |
| `pre_close` | `REAL` | 是 | `-` | - | 昨收价。 |
| `turnover_rate` | `REAL` | 是 | `-` | - | 换手率。 |
| `volume_ratio` | `REAL` | 是 | `-` | - | 量比。 |
| `pe_ttm` | `REAL` | 是 | `-` | - | 市盈率(TTM)。 |
| `pe_static` | `REAL` | 是 | `-` | - | 静态市盈率。 |
| `pb_real` | `REAL` | 是 | `-` | - | 市净率。 |
| `ps_ttm` | `REAL` | 是 | `-` | - | 市销率(TTM)。 |
| `dv_ratio` | `REAL` | 是 | `-` | - | 股息率。 |
| `total_mv` | `REAL` | 是 | `-` | - | 总市值。 |
| `circ_mv` | `REAL` | 是 | `-` | - | 流通市值。 |
| `close_qfq` | `REAL` | 是 | `-` | - | 前复权收盘价。 |
| `close_hfq` | `REAL` | 是 | `-` | - | 后复权收盘价。 |
| `adj_factor` | `REAL` | 是 | `-` | - | 复权因子。 |
| `bias1_qfq` | `REAL` | 是 | `-` | - | 前复权 BIAS1。 |
| `bias2_qfq` | `REAL` | 是 | `-` | - | 前复权 BIAS2。 |
| `bias3_qfq` | `REAL` | 是 | `-` | - | 前复权 BIAS3。 |
| `boll_lower_qfq` | `REAL` | 是 | `-` | - | 前复权 BOLL 下轨。 |
| `boll_mid_qfq` | `REAL` | 是 | `-` | - | 前复权 BOLL 中轨。 |
| `boll_upper_qfq` | `REAL` | 是 | `-` | - | 前复权 BOLL 上轨。 |
| `cci_qfq` | `REAL` | 是 | `-` | - | 前复权 CCI。 |
| `cr_qfq` | `REAL` | 是 | `-` | - | 前复权 CR。 |
| `dmi_adx_qfq` | `REAL` | 是 | `-` | - | 前复权 DMI ADX。 |
| `dmi_adxr_qfq` | `REAL` | 是 | `-` | - | 前复权 DMI ADXR。 |
| `dmi_mdi_qfq` | `REAL` | 是 | `-` | - | 前复权 DMI MDI。 |
| `dmi_pdi_qfq` | `REAL` | 是 | `-` | - | 前复权 DMI PDI。 |
| `ema_qfq_5` | `REAL` | 是 | `-` | - | 前复权 EMA5。 |
| `ema_qfq_10` | `REAL` | 是 | `-` | - | 前复权 EMA10。 |
| `ema_qfq_20` | `REAL` | 是 | `-` | - | 前复权 EMA20。 |
| `ema_qfq_30` | `REAL` | 是 | `-` | - | 前复权 EMA30。 |
| `ema_qfq_60` | `REAL` | 是 | `-` | - | 前复权 EMA60。 |
| `kdj_k_qfq` | `REAL` | 是 | `-` | - | 前复权 KDJ K。 |
| `kdj_d_qfq` | `REAL` | 是 | `-` | - | 前复权 KDJ D。 |
| `kdj_qfq` | `REAL` | 是 | `-` | - | 前复权 KDJ J。 |
| `ma_qfq_5` | `REAL` | 是 | `-` | - | 前复权 MA5。 |
| `ma_qfq_10` | `REAL` | 是 | `-` | - | 前复权 MA10。 |
| `ma_qfq_20` | `REAL` | 是 | `-` | - | 前复权 MA20。 |
| `ma_qfq_30` | `REAL` | 是 | `-` | - | 前复权 MA30。 |
| `ma_qfq_60` | `REAL` | 是 | `-` | - | 前复权 MA60。 |
| `macd_dif_qfq` | `REAL` | 是 | `-` | - | 前复权 MACD DIF。 |
| `macd_dea_qfq` | `REAL` | 是 | `-` | - | 前复权 MACD DEA。 |
| `macd_qfq` | `REAL` | 是 | `-` | - | 前复权 MACD 柱。 |
| `maroc_qfq` | `REAL` | 是 | `-` | - | 前复权 ROCMA。 |
| `psy_qfq` | `REAL` | 是 | `-` | - | 前复权 PSY。 |
| `psyma_qfq` | `REAL` | 是 | `-` | - | 前复权 PSYMA。 |
| `roc_qfq` | `REAL` | 是 | `-` | - | 前复权 ROC。 |
| `rsi_qfq_6` | `REAL` | 是 | `-` | - | 前复权 RSI6。 |
| `rsi_qfq_12` | `REAL` | 是 | `-` | - | 前复权 RSI12。 |
| `rsi_qfq_24` | `REAL` | 是 | `-` | - | 前复权 RSI24。 |
| `wr_qfq` | `REAL` | 是 | `-` | - | 前复权 WR6。 |
| `wr1_qfq` | `REAL` | 是 | `-` | - | 前复权 WR10。 |
| `source` | `TEXT` | 否 | `'tushare:stk_factor_pro'` | - | 数据来源标识。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `notice_record`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：`idx_notice_stock_code`(stock_code)；`idx_notice_market`(market)；`idx_notice_publish_time`(publish_time DESC)；`idx_notice_source`(source)；`idx_notice_status`(status)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `id` | `INTEGER` | 否 | `-` | PK | 自增主键。 |
| `notice_id` | `TEXT` | 否 | `-` | UNIQUE | 公告唯一标识。 |
| `stock_code` | `TEXT` | 否 | `-` | - | 证券代码。 |
| `market` | `TEXT` | 否 | `'A'` | - | 市场代码（A/H/U）。 |
| `stock_name` | `TEXT` | 是 | `-` | - | 证券简称。 |
| `notice_title` | `TEXT` | 否 | `-` | - | 公告标题。 |
| `notice_link` | `TEXT` | 是 | `-` | - | 公告原文链接。 |
| `notice_content` | `TEXT` | 是 | `-` | - | 公告原文内容。 |
| `publish_time` | `TEXT` | 否 | `-` | - | 公告发布时间。 |
| `source` | `TEXT` | 否 | `-` | - | cninfo/hkex/sec |
| `category` | `TEXT` | 是 | `-` | - | 公告分类。 |
| `status` | `TEXT` | 是 | `'PENDING'` | - | PENDING/PROCESSING/DONE/FAILED |
| `t_date` | `TEXT` | 是 | `-` | - | T 日（策略口径日期）。 |
| `industry` | `TEXT` | 是 | `-` | - | 一级行业。 |
| `industry2` | `TEXT` | 是 | `-` | - | 二级行业。 |
| `market_cap` | `TEXT` | 是 | `-` | - | 市值（当前存 TEXT）。 |
| `pct_t` | `REAL` | 是 | `-` | - | T 日涨跌幅。 |
| `avg_price_3d_anomaly` | `INTEGER` | 是 | `-` | - | 3 日均价异常标记。 |
| `tt_vol_anomaly_100d` | `INTEGER` | 是 | `-` | - | 100 日成交量异常标记。 |
| `tt_vol_anomaly_240d` | `INTEGER` | 是 | `-` | - | 240 日成交量异常标记。 |
| `tt_year_high_anomaly` | `INTEGER` | 是 | `-` | - | 年内高位异常标记。 |
| `anomaly_score` | `INTEGER` | 是 | `-` | - | 异常综合评分；和 AI 四维评分不是同一口径。 |
| `score_fundamental` | `REAL` | 是 | `-` | - | AI 基本面评分；当前正式业务语义固定为 `1-5` 整数，列类型沿用历史 `REAL`。 |
| `score_novelty` | `REAL` | 是 | `-` | - | AI 逻辑新颖评分；当前正式业务语义固定为 `1-5` 整数，列类型沿用历史 `REAL`。 |
| `score_business` | `REAL` | 是 | `-` | - | AI 商业模式竞争力评分；当前正式业务语义固定为 `1-5` 整数，列类型沿用历史 `REAL`。 |
| `score_elasticity` | `REAL` | 是 | `-` | - | AI 弹性确定性评分；当前正式业务语义固定为 `1-5` 整数，列类型沿用历史 `REAL`。 |
| `beneficial_direction` | `TEXT` | 是 | `-` | - | 受益方向摘要。 |
| `ai_analysis` | `TEXT` | 是 | `-` | - | AI 分析文本。 |
| `user_rating` | `INTEGER` | 是 | `-` | - | 用户评分。 |
| `deep_report` | `TEXT` | 是 | `-` | - | 深度报告正文。 |
| `deep_report_time` | `TEXT` | 是 | `-` | - | 深度报告生成时间。 |
| `deep_report_status` | `TEXT` | 是 | `'NONE'` | - | 深度报告状态。 |
| `deep_report_path` | `TEXT` | 是 | `-` | - | 深度报告落盘路径。 |
| `created_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 创建时间（TEXT 时间）。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `llm_request_log`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：`idx_llm_log_task_type`(task_type)；`idx_llm_log_status`(status)；`idx_llm_log_created_at`(created_at DESC)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `id` | `INTEGER` | 否 | `-` | PK | 自增主键。 |
| `task_type` | `TEXT` | 否 | `-` | - | 任务类型。 |
| `account` | `TEXT` | 是 | `-` | - | 调用账号。 |
| `business_key` | `TEXT` | 是 | `-` | - | 业务关联键（如 notice_id）。 |
| `prompt` | `TEXT` | 否 | `-` | - | LLM 请求 Prompt。 |
| `response` | `TEXT` | 是 | `-` | - | LLM 响应文本。 |
| `status` | `TEXT` | 否 | `-` | - | SUCCESS/FAILED |
| `duration_ms` | `INTEGER` | 是 | `-` | - | 耗时毫秒。 |
| `error_message` | `TEXT` | 是 | `-` | - | 错误消息。 |
| `created_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 创建时间（TEXT 时间）。 |

## `sys_config`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：未定义额外索引

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `config_key` | `TEXT` | 否 | `-` | PK | 配置键。 |
| `config_value` | `TEXT` | 否 | `-` | - | 配置值（字符串）。 |
| `description` | `TEXT` | 是 | `-` | - | 配置/任务描述。 |
| `is_sensitive` | `INTEGER` | 是 | `0` | - | 敏感配置标记（0/1）。 |
| `created_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 创建时间（TEXT 时间）。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `sys_scheduled_task`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：未定义额外索引

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `task_key` | `TEXT` | 否 | `-` | PK | 任务唯一键。 |
| `task_name` | `TEXT` | 否 | `-` | - | 任务显示名。 |
| `cron_expression` | `TEXT` | 否 | `-` | - | Cron 表达式。 |
| `enabled` | `INTEGER` | 是 | `1` | - | 任务启用标记（0/1）。 |
| `description` | `TEXT` | 是 | `-` | - | 配置/任务描述。 |
| `last_run_at` | `TEXT` | 是 | `-` | - | 最近执行时间。 |
| `last_run_status` | `TEXT` | 是 | `-` | - | 最近执行状态。 |
| `last_error` | `TEXT` | 是 | `-` | - | 最近一次错误信息。 |
| `run_count` | `INTEGER` | 是 | `0` | - | 累计运行次数。 |
| `created_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 创建时间（TEXT 时间）。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `sys_scheduled_task_log`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：`idx_task_log_task_key`(task_key)；`idx_task_log_created_at`(created_at DESC)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `id` | `INTEGER` | 否 | `-` | PK | 自增主键。 |
| `task_key` | `TEXT` | 否 | `-` | - | 任务唯一键。 |
| `status` | `TEXT` | 否 | `-` | - | SUCCESS/FAILED |
| `started_at` | `TEXT` | 否 | `-` | - | 任务开始时间。 |
| `finished_at` | `TEXT` | 是 | `-` | - | 任务结束时间。 |
| `duration_ms` | `INTEGER` | 是 | `-` | - | 耗时毫秒。 |
| `error_message` | `TEXT` | 是 | `-` | - | 错误消息。 |
| `details` | `TEXT` | 是 | `-` | - | 详情文本/执行日志。 |
| `created_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 创建时间（TEXT 时间）。 |

## `sys_failed_operation`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：`idx_failed_op_status`(status)；`idx_failed_op_type`(operation_type)；`idx_failed_op_created_at`(created_at DESC)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `id` | `INTEGER` | 否 | `-` | PK | 自增主键。 |
| `operation_type` | `TEXT` | 否 | `-` | - | 'notice_analysis', 'report_generation' |
| `business_key` | `TEXT` | 否 | `-` | - | notice_id 等 |
| `payload` | `TEXT` | 是 | `-` | - | 操作参数 JSON |
| `error_message` | `TEXT` | 是 | `-` | - | 错误消息。 |
| `retry_count` | `INTEGER` | 是 | `0` | - | 重试次数。 |
| `max_retries` | `INTEGER` | 是 | `3` | - | 最大重试次数。 |
| `status` | `TEXT` | 是 | `'pending'` | - | pending/resolved/failed |
| `created_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 创建时间（TEXT 时间）。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |

## `sys_operation_log`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：`idx_op_log_type`(operation_type)；`idx_op_log_created_at`(created_at DESC)

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `id` | `INTEGER` | 否 | `-` | PK | 自增主键。 |
| `operation_type` | `TEXT` | 否 | `-` | - | 操作类型。 |
| `business_key` | `TEXT` | 是 | `-` | - | 业务关联键（如 notice_id）。 |
| `status` | `TEXT` | 否 | `-` | - | success/failed |
| `details` | `TEXT` | 是 | `-` | - | 详情文本/执行日志。 |
| `created_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 创建时间（TEXT 时间）。 |

## `sys_user_account`（market.db）

- 主键：列内定义（如 `id INTEGER PRIMARY KEY AUTOINCREMENT`）或无复合主键
- 索引：未定义额外索引

| 字段 | 类型 | 可空 | 默认值 | 键 | 业务含义 |
| --- | --- | --- | --- | --- | --- |
| `id` | `INTEGER` | 否 | `-` | PK | 自增主键。 |
| `username` | `TEXT` | 否 | `-` | UNIQUE | 用户名。 |
| `display_name` | `TEXT` | 是 | `-` | - | 显示名。 |
| `password_hash` | `TEXT` | 否 | `-` | - | 密码哈希。 |
| `status` | `TEXT` | 是 | `'active'` | - | active/frozen |
| `last_login_at` | `TEXT` | 是 | `-` | - | 最近登录时间。 |
| `created_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 创建时间（TEXT 时间）。 |
| `updated_at` | `TEXT` | 否 | `CURRENT_TIMESTAMP` | - | 更新时间（TEXT 时间）。 |
