46 lines
1.8 KiB
SQL
46 lines
1.8 KiB
SQL
-- 新闻文章表建表 SQL
|
|
-- 使用方法: sqlite3 backend/stock_agent.db < schema_news.sql
|
|
|
|
CREATE TABLE IF NOT EXISTS news_articles (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
title VARCHAR(500) NOT NULL,
|
|
content TEXT,
|
|
content_hash VARCHAR(64) NOT NULL,
|
|
url VARCHAR(1000) NOT NULL UNIQUE,
|
|
source VARCHAR(100) NOT NULL,
|
|
author VARCHAR(200),
|
|
category VARCHAR(50) NOT NULL,
|
|
tags JSON,
|
|
published_at DATETIME,
|
|
crawled_at DATETIME NOT NULL,
|
|
llm_analyzed BOOLEAN DEFAULT 0,
|
|
market_impact VARCHAR(20),
|
|
impact_type VARCHAR(50),
|
|
relevant_symbols JSON,
|
|
sentiment VARCHAR(20),
|
|
summary TEXT,
|
|
key_points JSON,
|
|
trading_advice TEXT,
|
|
priority REAL DEFAULT 0.0,
|
|
priority_reason TEXT,
|
|
notified BOOLEAN DEFAULT 0,
|
|
notification_sent_at DATETIME,
|
|
notification_channel VARCHAR(50),
|
|
quality_score REAL,
|
|
duplicate_of INTEGER,
|
|
is_active BOOLEAN DEFAULT 1,
|
|
created_at DATETIME NOT NULL,
|
|
updated_at DATETIME NOT NULL
|
|
);
|
|
|
|
-- 创建索引
|
|
CREATE INDEX IF NOT EXISTS idx_news_articles_content_hash ON news_articles(content_hash);
|
|
CREATE INDEX IF NOT EXISTS idx_news_articles_category ON news_articles(category);
|
|
CREATE INDEX IF NOT EXISTS idx_news_articles_published_at ON news_articles(published_at);
|
|
CREATE INDEX IF NOT EXISTS idx_news_articles_crawled_at ON news_articles(crawled_at);
|
|
CREATE INDEX IF NOT EXISTS idx_news_articles_llm_analyzed ON news_articles(llm_analyzed);
|
|
CREATE INDEX IF NOT EXISTS idx_news_articles_priority ON news_articles(priority);
|
|
CREATE INDEX IF NOT EXISTS idx_news_articles_notified ON news_articles(notified);
|
|
CREATE INDEX IF NOT EXISTS idx_news_articles_is_active ON news_articles(is_active);
|
|
CREATE INDEX IF NOT EXISTS idx_news_articles_created_at ON news_articles(created_at);
|