three60/drizzle/0000_harsh_warlock.sql
2024-12-17 10:53:59 +01:00

53 lines
2.7 KiB
SQL

CREATE TABLE `sessions` (
`token` varchar(255) NOT NULL,
`userId` int NOT NULL,
`expires` bigint NOT NULL,
CONSTRAINT `sessions_token` PRIMARY KEY(`token`)
);
--> statement-breakpoint
CREATE TABLE `survey_access_table` (
`id` int AUTO_INCREMENT NOT NULL,
`surveyId` int NOT NULL,
`recepientEmail` text NOT NULL,
`accessToken` varchar(255) NOT NULL,
CONSTRAINT `survey_access_table_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `survey_answers_table` (
`participantId` int NOT NULL,
`skillId` int NOT NULL,
`rating` int NOT NULL,
CONSTRAINT `survey_answers_table_participantId_skillId_pk` PRIMARY KEY(`participantId`,`skillId`)
);
--> statement-breakpoint
CREATE TABLE `survey_skills_table` (
`id` int AUTO_INCREMENT NOT NULL,
`surveyId` int NOT NULL,
`title` text NOT NULL,
`description` text,
CONSTRAINT `survey_skills_table_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `surveys_table` (
`id` int AUTO_INCREMENT NOT NULL,
`title` text NOT NULL,
`description` text,
`owner` int NOT NULL,
CONSTRAINT `surveys_table_id` PRIMARY KEY(`id`)
);
--> statement-breakpoint
CREATE TABLE `users_table` (
`id` int AUTO_INCREMENT NOT NULL,
`email` varchar(255) NOT NULL,
`password_hash` text NOT NULL,
CONSTRAINT `users_table_id` PRIMARY KEY(`id`),
CONSTRAINT `users_table_email_unique` UNIQUE(`email`)
);
--> statement-breakpoint
ALTER TABLE `sessions` ADD CONSTRAINT `sessions_userId_users_table_id_fk` FOREIGN KEY (`userId`) REFERENCES `users_table`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `survey_access_table` ADD CONSTRAINT `survey_access_table_surveyId_surveys_table_id_fk` FOREIGN KEY (`surveyId`) REFERENCES `surveys_table`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `survey_answers_table` ADD CONSTRAINT `survey_answers_table_participantId_survey_access_table_id_fk` FOREIGN KEY (`participantId`) REFERENCES `survey_access_table`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `survey_answers_table` ADD CONSTRAINT `survey_answers_table_skillId_survey_skills_table_id_fk` FOREIGN KEY (`skillId`) REFERENCES `survey_skills_table`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `survey_skills_table` ADD CONSTRAINT `survey_skills_table_surveyId_surveys_table_id_fk` FOREIGN KEY (`surveyId`) REFERENCES `surveys_table`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE `surveys_table` ADD CONSTRAINT `surveys_table_owner_users_table_id_fk` FOREIGN KEY (`owner`) REFERENCES `users_table`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
CREATE INDEX `token_index` ON `survey_access_table` (`accessToken`);