diff options
author | Camil Staps | 2020-02-03 09:47:21 +0100 |
---|---|---|
committer | Camil Staps | 2020-02-03 09:47:21 +0100 |
commit | 2af4ffce19df7cdb34d4b509a66bc916ffcb88d1 (patch) | |
tree | 481bc542d1298e1bcb3e39c107a22b39f13f0395 /install.sql |
Initial commit
Diffstat (limited to 'install.sql')
-rw-r--r-- | install.sql | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/install.sql b/install.sql new file mode 100644 index 0000000..8eb299a --- /dev/null +++ b/install.sql @@ -0,0 +1,81 @@ +CREATE TABLE `events` ( + `id` int(11) NOT NULL, + `title` text NOT NULL, + `location` text NOT NULL, + `start_date` date NOT NULL, + `end_date` date NOT NULL, + `source` int(11) NOT NULL, + `added_by` int(11) NOT NULL, + `description` mediumtext NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `event_keyword` ( + `event` int(11) NOT NULL, + `keyword` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `keywords` ( + `id` int(11) NOT NULL, + `keyword` text NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `sources` ( + `id` int(11) NOT NULL, + `source` text NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `users` ( + `id` int(11) NOT NULL, + `name` mediumtext NOT NULL, + `email` varchar(255) NOT NULL, + `pgp_fingerprint` text NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + +ALTER TABLE `events` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `title_2` (`title`(255),`start_date`), + ADD KEY `start_date` (`start_date`), + ADD KEY `end_date` (`end_date`), + ADD KEY `source` (`source`), + ADD KEY `added_by` (`added_by`); +ALTER TABLE `events` ADD FULLTEXT KEY `location` (`location`); +ALTER TABLE `events` ADD FULLTEXT KEY `title` (`title`); +ALTER TABLE `events` ADD FULLTEXT KEY `description` (`description`); + +ALTER TABLE `event_keyword` + ADD UNIQUE KEY `event_2` (`event`,`keyword`), + ADD KEY `event` (`event`), + ADD KEY `keyword` (`keyword`); + +ALTER TABLE `keywords` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `keyword` (`keyword`(127)) USING BTREE; +ALTER TABLE `keywords` ADD FULLTEXT KEY `keyword_2` (`keyword`); + +ALTER TABLE `sources` + ADD PRIMARY KEY (`id`); +ALTER TABLE `sources` ADD FULLTEXT KEY `source` (`source`); + +ALTER TABLE `users` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `email` (`email`), + ADD UNIQUE KEY `name` (`name`(127)); + + +ALTER TABLE `events` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; +ALTER TABLE `keywords` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; +ALTER TABLE `sources` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; +ALTER TABLE `users` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +ALTER TABLE `events` + ADD CONSTRAINT `events_ibfk_1` FOREIGN KEY (`added_by`) REFERENCES `users` (`id`), + ADD CONSTRAINT `events_ibfk_2` FOREIGN KEY (`source`) REFERENCES `sources` (`id`); + +ALTER TABLE `event_keyword` + ADD CONSTRAINT `event_keyword_ibfk_1` FOREIGN KEY (`event`) REFERENCES `events` (`id`), + ADD CONSTRAINT `event_keyword_ibfk_2` FOREIGN KEY (`keyword`) REFERENCES `keywords` (`id`); |