diff --git a/docker_dev/mysql_schema.sql b/docker_dev/mysql_schema.sql index 9585970..3afa716 100644 --- a/docker_dev/mysql_schema.sql +++ b/docker_dev/mysql_schema.sql @@ -55,6 +55,34 @@ CREATE TABLE dev_post_markdown ( FULLTEXT(post_markdown) ); +CREATE TABLE dev_feeds ( + post_id INTEGER NOT NULL, + feed_key VARCHAR(32), + feed_id VARCHAR(40) NOT NULL, + + feed_created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + + feed_metadata JSON DEFAULT NULL, + + feed_text TEXT, + +-- Primary key as true ID to allow for deterministic saving/recreating + CONSTRAINT PK_FEED PRIMARY KEY(post_id, feed_key, feed_id), + FOREIGN KEY(post_id) REFERENCES dev_posts(post_id) + ON DELETE CASCADE, + +-- Make it possible to look up changes from e.g. a commit hash inexpensively + INDEX(feed_id), +-- Make it possible to look up specific post feeds efficiently (e.g. changelog) + INDEX(post_id, feed_key, feed_created_at), +-- Make it possible to globally look up specific feeds efficiently + INDEX(feed_key, feed_created_at), +-- And just in general, make searching feeds in a timeframe efficient + INDEX(feed_created_at), + + FULLTEXT(feed_text) +); + CREATE TABLE analytics_summations ( time_bucket DATETIME NOT NULL, metric VARCHAR(16) NOT NULL,