Files
2026-08-01 23:09:49 +08:00

42 lines
1.7 KiB
SQL

-- Migration: 007_create_rules
-- Description: 考核规则及指标项表
-- Date: 2026-08-01
-- Refs: pmdocs/changes/2026-08-01-001-V0.2考核规则配置.md
CREATE TABLE IF NOT EXISTS rules (
id INTEGER PRIMARY KEY AUTOINCREMENT,
code TEXT NOT NULL UNIQUE,
name TEXT NOT NULL,
description TEXT,
period_type TEXT NOT NULL,
period_start TEXT,
period_end TEXT,
status TEXT NOT NULL DEFAULT 'draft',
version INTEGER NOT NULL DEFAULT 1,
parent_id INTEGER REFERENCES rules(id),
created_by TEXT,
created_at TEXT NOT NULL DEFAULT (datetime('now', 'localtime')),
updated_at TEXT NOT NULL DEFAULT (datetime('now', 'localtime'))
);
CREATE TABLE IF NOT EXISTS rule_items (
id INTEGER PRIMARY KEY AUTOINCREMENT,
rule_id INTEGER NOT NULL REFERENCES rules(id) ON DELETE CASCADE,
category TEXT NOT NULL,
name TEXT NOT NULL,
metric_key TEXT NOT NULL,
weight REAL NOT NULL,
min_score REAL NOT NULL DEFAULT 0,
max_score REAL NOT NULL DEFAULT 100,
formula_type TEXT NOT NULL,
formula_params TEXT,
display_order INTEGER NOT NULL DEFAULT 0,
enabled INTEGER NOT NULL DEFAULT 1,
created_at TEXT NOT NULL DEFAULT (datetime('now', 'localtime')),
updated_at TEXT NOT NULL DEFAULT (datetime('now', 'localtime'))
);
CREATE INDEX IF NOT EXISTS idx_rules_status ON rules(status);
CREATE INDEX IF NOT EXISTS idx_rules_period ON rules(period_start, period_end);
CREATE INDEX IF NOT EXISTS idx_rule_items_rule ON rule_items(rule_id);
CREATE INDEX IF NOT EXISTS idx_rule_items_category ON rule_items(category);