75 lines
		
	
	
		
			No EOL
		
	
	
		
			2.7 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			No EOL
		
	
	
		
			2.7 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
| DROP DATABASE IF EXISTS ##;
 | |
| -- !
 | |
| CREATE DATABASE IF NOT EXISTS ## CHARACTER SET utf8 COLLATE utf8_general_ci;
 | |
| -- !
 | |
| USE ##;
 | |
| -- !
 | |
| DROP TABLE IF EXISTS Information;
 | |
| -- !
 | |
| CREATE TABLE IF NOT EXISTS Information (
 | |
|   id              INTEGER     AUTO_INCREMENT PRIMARY KEY,
 | |
|   inf_key         TEXT        NOT NULL,
 | |
|   inf_value       TEXT        NOT NULL
 | |
| );
 | |
| -- !
 | |
| INSERT INTO Information VALUES (1, 'schema_version', '3');
 | |
| -- !
 | |
| DROP TABLE IF EXISTS Categories;
 | |
| -- !
 | |
| CREATE TABLE IF NOT EXISTS Categories (
 | |
|   id              INTEGER       AUTO_INCREMENT PRIMARY KEY,
 | |
|   parent_id       INTEGER       NOT NULL,
 | |
|   title           VARCHAR(100)  NOT NULL UNIQUE CHECK (title != ''),
 | |
|   description     TEXT,
 | |
|   date_created    BIGINT        NOT NULL CHECK (date_created != 0),
 | |
|   icon            BLOB
 | |
| );
 | |
| -- !
 | |
| DROP TABLE IF EXISTS Feeds;
 | |
| -- !
 | |
| CREATE TABLE IF NOT EXISTS Feeds (
 | |
|   id              INTEGER       AUTO_INCREMENT PRIMARY KEY,
 | |
|   title           TEXT          NOT NULL CHECK (title != ''),
 | |
|   description     TEXT,
 | |
|   date_created    BIGINT        NOT NULL CHECK (date_created != 0),
 | |
|   icon            BLOB,
 | |
|   category        INTEGER       NOT NULL CHECK (category >= -1),
 | |
|   encoding        TEXT          NOT NULL CHECK (encoding != ''),
 | |
|   url             VARCHAR(100)  NOT NULL UNIQUE CHECK (url != ''),
 | |
|   protected       INTEGER(1)    NOT NULL CHECK (protected >= 0 AND protected <= 1),
 | |
|   username        TEXT,
 | |
|   password        TEXT,
 | |
|   update_type     INTEGER(1)    NOT NULL CHECK (update_type >= 0),
 | |
|   update_interval INTEGER       NOT NULL DEFAULT 15 CHECK (update_interval >= 5),
 | |
|   type            INTEGER       NOT NULL CHECK (type >= 0)
 | |
| );
 | |
| -- !
 | |
| DROP TABLE IF EXISTS FeedsData;
 | |
| -- !
 | |
| CREATE TABLE IF NOT EXISTS FeedsData (
 | |
|   feed_id         INTEGER       NOT NULL,
 | |
|   feed_key        VARCHAR(100)  NOT NULL,
 | |
|   feed_value      TEXT,
 | |
|   
 | |
|   PRIMARY KEY (feed_id, feed_key),
 | |
|   FOREIGN KEY (feed_id) REFERENCES Feeds (id)
 | |
| );
 | |
| -- !
 | |
| DROP TABLE IF EXISTS Messages;
 | |
| -- !
 | |
| CREATE TABLE IF NOT EXISTS Messages (
 | |
|   id              INTEGER     AUTO_INCREMENT PRIMARY KEY,
 | |
|   is_read         INTEGER(1)  NOT NULL DEFAULT 0 CHECK (is_read >= 0 AND is_read <= 1),
 | |
|   is_deleted      INTEGER(1)  NOT NULL DEFAULT 0 CHECK (is_deleted >= 0 AND is_deleted <= 1),
 | |
|   is_important    INTEGER(1)  NOT NULL DEFAULT 0 CHECK (is_important >= 0 AND is_important <= 1),
 | |
|   feed            INTEGER     NOT NULL,
 | |
|   title           TEXT        NOT NULL CHECK (title != ''),
 | |
|   url             TEXT        NOT NULL,
 | |
|   author          TEXT        NOT NULL,
 | |
|   date_created    BIGINT      NOT NULL CHECK (date_created != 0),
 | |
|   contents        TEXT,
 | |
|   is_pdeleted     INTEGER(1)  NOT NULL DEFAULT 0 CHECK (is_pdeleted >= 0 AND is_pdeleted <= 1),
 | |
|   enclosures      TEXT,
 | |
|   
 | |
|   FOREIGN KEY (feed) REFERENCES Feeds (id)
 | |
| ); |