Projet

Général

Profil

DATABASE ARCHIVE » 3_1_Questionnaire.sql

Tarek AOUADI, 02/04/2025 00:07

 
1
use salarymarket;
2
CREATE TABLE solution_questionnaire (
3
    id INT PRIMARY KEY AUTO_INCREMENT,
4
    title VARCHAR(255) NOT NULL,
5
    description Text null, 
6
    countryCode VARCHAR(255) NOT NULL, 
7
    quiz_image  VARCHAR(255) NULL,
8
    questionnaire_order INT NOT NULL,  
9
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     
10
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
11
    FOREIGN KEY (countryCode) REFERENCES solution_setting_country(code) ON DELETE CASCADE
12
);
13
-- Create solution_questionnaire_section table
14
CREATE TABLE solution_questionnaire_section (
15
    id INT PRIMARY KEY AUTO_INCREMENT,
16
    title VARCHAR(255) NOT NULL,
17
    questionnaireId INT NOT NULL,
18
	section_order INT NOT NULL,
19
    FOREIGN KEY (questionnaireId) REFERENCES solution_questionnaire(id) ON DELETE CASCADE ON UPDATE CASCADE
20
);
21
-- Create solution_questionnaire_questions table
22
CREATE TABLE solution_questionnaire_questions (
23
    id INT PRIMARY KEY AUTO_INCREMENT,
24
    question VARCHAR(255) NOT NULL,
25
    sectionId INT NOT NULL,
26
    questionnaireId INT NOT NULL,
27
    idparent INT DEFAULT 0,
28
    type VARCHAR(2) NOT NULL,
29
    question_order INT NOT NULL,
30
    echartType varchar(255),
31
    FOREIGN KEY (sectionId) REFERENCES solution_questionnaire_section(id) ON DELETE CASCADE ON UPDATE CASCADE,
32
	FOREIGN KEY (questionnaireId) REFERENCES solution_questionnaire(id) ON DELETE CASCADE ON UPDATE CASCADE
33
);
34
-- Create solution_questionnaire_question_items table
35
CREATE TABLE solution_questionnaire_question_items (
36
    id INT PRIMARY KEY AUTO_INCREMENT,
37
    item VARCHAR(255) NOT NULL,
38
    questionId INT NOT NULL,
39
    itemParentId INT NULL,
40
    isOther BOOLEAN DEFAULT 0,
41
    FOREIGN KEY (questionId) REFERENCES solution_questionnaire_questions(id) ON DELETE CASCADE ON UPDATE CASCADE
42
);
43
-- Create company_questionnaire_response table
44
CREATE TABLE company_questionnaire_response (
45
	id INT AUTO_INCREMENT PRIMARY KEY,
46
    questionnaireId INT NOT NULL,
47
    questionId INT NOT NULL,
48
	sectionId INT NOT NULL,
49
    itemId INT NOT NULL,
50
    response VARCHAR(255),
51
    type VARCHAR(50),
52
    companyId INT NOT NULL,
53
	FOREIGN KEY (questionnaireId) REFERENCES solution_questionnaire(id) ON DELETE CASCADE ON UPDATE CASCADE,
54
	FOREIGN KEY (sectionId) REFERENCES solution_questionnaire_section(id) ON DELETE CASCADE ON UPDATE CASCADE,
55
	FOREIGN KEY (itemId) REFERENCES solution_questionnaire_question_items(id) ON DELETE CASCADE ON UPDATE CASCADE,
56
	FOREIGN KEY (questionId) REFERENCES solution_questionnaire_questions(id) ON DELETE CASCADE ON UPDATE CASCADE,
57
	FOREIGN KEY (companyId) REFERENCES company(id) ON DELETE CASCADE ON UPDATE CASCADE,
58
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
59
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
60
);
(10-10/18)