mirror of
https://github.com/khairul169/code-share.git
synced 2025-04-28 16:49:36 +07:00
44 lines
1.8 KiB
SQL
44 lines
1.8 KiB
SQL
CREATE TABLE `files` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`project_id` integer NOT NULL,
|
|
`parent_id` integer,
|
|
`path` text NOT NULL,
|
|
`filename` text NOT NULL,
|
|
`is_directory` integer DEFAULT false NOT NULL,
|
|
`is_file` integer DEFAULT false NOT NULL,
|
|
`is_pinned` integer DEFAULT false NOT NULL,
|
|
`content` text,
|
|
`created_at` text DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
`deleted_at` text,
|
|
FOREIGN KEY (`project_id`) REFERENCES `projects`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`parent_id`) REFERENCES `files`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `projects` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`fork_id` integer;
|
|
`user_id` integer NOT NULL,
|
|
`slug` text NOT NULL,
|
|
`title` text NOT NULL,
|
|
`visibility` text DEFAULT 'private',
|
|
`settings` text DEFAULT [object Object],
|
|
`created_at` text DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
`deleted_at` text,
|
|
FOREIGN KEY (`fork_id`) REFERENCES `projects`(`id`) ON UPDATE no action ON DELETE no action,
|
|
FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON UPDATE no action ON DELETE no action
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `users` (
|
|
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
`name` text NOT NULL,
|
|
`email` text NOT NULL,
|
|
`password` text NOT NULL,
|
|
`created_at` text DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
`deleted_at` text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `file_path_idx` ON `files` (`path`);--> statement-breakpoint
|
|
CREATE INDEX `file_name_idx` ON `files` (`filename`);--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `projects_slug_unique` ON `projects` (`slug`);--> statement-breakpoint
|
|
CREATE INDEX `project_visibility_idx` ON `projects` (`visibility`);--> statement-breakpoint
|
|
CREATE UNIQUE INDEX `users_email_unique` ON `users` (`email`); |