20 lines
837 B
SQL
20 lines
837 B
SQL
CREATE TABLE sources (
|
|
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(255) NOT NULL,
|
|
url VARCHAR(2048) NOT NULL,
|
|
type VARCHAR(50) NOT NULL, -- 'rss', 'api', 'website'
|
|
status VARCHAR(50) NOT NULL DEFAULT 'active',
|
|
last_crawled_at TIMESTAMP NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP NULL,
|
|
INDEX idx_sources_status (status)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE source_categories (
|
|
source_id BIGINT UNSIGNED NOT NULL,
|
|
category VARCHAR(100) NOT NULL,
|
|
PRIMARY KEY (source_id, category),
|
|
FOREIGN KEY (source_id) REFERENCES sources(id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|