Added Filters table
This commit is contained in:
73
MakeDatabase.sql
Normal file
73
MakeDatabase.sql
Normal file
@@ -0,0 +1,73 @@
|
||||
USE demodb;
|
||||
|
||||
CREATE TABLE `Surveys` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`surveyId` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`description` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `unique_id` (`id`),
|
||||
UNIQUE KEY `unique_surveyid` (`surveyId`)
|
||||
);
|
||||
|
||||
CREATE TABLE `Responses` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`Q1` int DEFAULT NULL,
|
||||
`Q2` int DEFAULT NULL,
|
||||
`Q3` int DEFAULT NULL,
|
||||
`surveyId` int NOT NULL,
|
||||
`responseId` varchar(18) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`startDate` datetime DEFAULT NULL,
|
||||
`endDate` datetime DEFAULT NULL,
|
||||
`status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`ipAddress` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`progress` int DEFAULT NULL,
|
||||
`duration` int DEFAULT NULL,
|
||||
`finished` tinyint(1) DEFAULT NULL,
|
||||
`recordedDate` datetime DEFAULT NULL,
|
||||
`locationLatitude` decimal(9,6) DEFAULT NULL,
|
||||
`locationLongitude` decimal(9,6) DEFAULT NULL,
|
||||
`distributionChannel` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`userLanguage` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `unique_id` (`id`),
|
||||
UNIQUE KEY `unique_response_id` (`responseId`),
|
||||
KEY `Responses_ibfk_1` (`surveyId`),
|
||||
CONSTRAINT `Responses_ibfk_1` FOREIGN KEY (`surveyId`) REFERENCES `Surveys` (`id`)
|
||||
);
|
||||
|
||||
CREATE TABLE `Answers` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`surveyId` int NOT NULL,
|
||||
`responseId` int NOT NULL,
|
||||
`QID` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`text` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`value` tinyint DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `unique_survey_response_qid` (`surveyId`,`responseId`,`QID`),
|
||||
KEY `surveyId` (`surveyId`),
|
||||
KEY `responseId` (`responseId`),
|
||||
CONSTRAINT `Answers_ibfk_1` FOREIGN KEY (`surveyId`) REFERENCES `Surveys` (`id`),
|
||||
CONSTRAINT `Answers_ibfk_2` FOREIGN KEY (`responseId`) REFERENCES `Responses` (`id`),
|
||||
CONSTRAINT `Answers_chk_1` CHECK ((`value` between -(3) and 3))
|
||||
);
|
||||
|
||||
CREATE TABLE `Users` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`username` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`password_hash` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||||
`totp_secret` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||
`role` enum('user','admin') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'user',
|
||||
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `username` (`username`)
|
||||
);
|
||||
|
||||
CREATE TABLE Filters (
|
||||
id INT NOT NULL AUTO_INCREMENT,
|
||||
surveyId INT NOT NULL,
|
||||
FilterQuestion INT NOT NULL,
|
||||
FilterOption INT NOT NULL,
|
||||
Text VARCHAR(128),
|
||||
PRIMARY KEY (id),
|
||||
FOREIGN KEY (surveyId) REFERENCES Surveys(id)
|
||||
);
|
||||
Reference in New Issue
Block a user