summaryrefslogtreecommitdiff
path: root/database.sql
diff options
context:
space:
mode:
Diffstat (limited to 'database.sql')
-rw-r--r--database.sql24
1 files changed, 24 insertions, 0 deletions
diff --git a/database.sql b/database.sql
new file mode 100644
index 0000000..30d2216
--- /dev/null
+++ b/database.sql
@@ -0,0 +1,24 @@
+CREATE TABLE article (
+ article_id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ slug VARCHAR(200) NOT NULL UNIQUE,
+ published DATETIME NOT NULL,
+ hidden TINYINT UNSIGNED NOT NULL DEFAULT 0,
+ title TEXT NOT NULL,
+ summary_html LONGTEXT NOT NULL,
+ full_html LONGTEXT NOT NULL,
+ full_plain LONGTEXT NOT NULL,
+ FULLTEXT(full_plain),
+ FULLTEXT(title)
+);
+
+CREATE INDEX by_slug ON article (slug);
+CREATE INDEX by_publish_date ON article (published);
+
+CREATE TABLE article_tag (
+ article_id INT UNSIGNED NOT NULL REFERENCES article (article_id) ON UPDATE CASCADE ON DELETE CASCADE,
+ tag VARCHAR(200) NOT NULL,
+ PRIMARY KEY(article_id, tag),
+ CONSTRAINT article_fk FOREIGN KEY (article_id) REFERENCES article (article_id) ON UPDATE CASCADE ON DELETE CASCADE
+);
+
+CREATE INDEX by_tag ON article_tag (tag);