41 lines
1.4 KiB
SQL
41 lines
1.4 KiB
SQL
CREATE TABLE `guilds` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`name` text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `membership` (
|
|
`user_id` text,
|
|
`guild_id` text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `memories` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`content` text,
|
|
`timestamp` text DEFAULT (current_timestamp),
|
|
`user_id` integer,
|
|
`guild_id` integer,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`guild_id`) REFERENCES `guilds`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `messages` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`content` text,
|
|
`timestamp` text DEFAULT (current_timestamp),
|
|
`channel_id` text,
|
|
`user_id` text,
|
|
`guild_id` text,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`guild_id`) REFERENCES `guilds`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `users` (
|
|
`id` text PRIMARY KEY NOT NULL,
|
|
`name` text,
|
|
`opt_out` integer
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `user_guild_idx` ON `membership` (`user_id`,`guild_id`);--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `user_guild_unique` ON `membership` (`user_id`,`guild_id`);--> statement-breakpoint
|
|
CREATE INDEX `user_timestamp_idx` ON `memories` (`user_id`,`timestamp`);--> statement-breakpoint
|
|
CREATE INDEX `channel_timestamp_idx` ON `messages` (`channel_id`,`timestamp`); |