You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
4.3 KiB
125 lines
4.3 KiB
<?php
|
|
|
|
use Config\Connection;
|
|
|
|
class ScriptDatabase {
|
|
|
|
private Connection $con;
|
|
public function __construct() {
|
|
$this->con = connect();
|
|
}
|
|
|
|
public function executeScript(): void
|
|
{
|
|
$queryScript = 'CREATE TABLE `Categorize` (
|
|
`response` int(11) NOT NULL,
|
|
`keyword` int(11) NOT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
CREATE TABLE `Form` (
|
|
`id` int(11) NOT NULL,
|
|
`title` varchar(50) NOT NULL,
|
|
`description` text NOT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
CREATE TABLE `Keyword` (
|
|
`id` int(11) NOT NULL,
|
|
`word` varchar(50) NOT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
CREATE TABLE `ListResponsesOfCandidate` (
|
|
`id` int(11) NOT NULL,
|
|
`date` datetime NOT NULL,
|
|
`titleForm` varchar(50) NOT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
CREATE TABLE `PossibleResponse` (
|
|
`id` int(11) NOT NULL,
|
|
`content` text NOT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
CREATE TABLE `Propose` (
|
|
`question` int(11) NOT NULL,
|
|
`possibleResponse` int(11) NOT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
CREATE TABLE `Question` (
|
|
`id` int(11) NOT NULL,
|
|
`content` text NOT NULL,
|
|
`type` varchar(50) NOT NULL,
|
|
`form` int(11) NOT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
CREATE TABLE `Reference` (
|
|
`possibleResponse` int(11) NOT NULL,
|
|
`keyword` int(11) NOT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
CREATE TABLE `Response` (
|
|
`id` int(11) NOT NULL,
|
|
`content` varchar(200) NOT NULL,
|
|
`questionContent` text NOT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
CREATE TABLE `Submit` (
|
|
`responsesCandidate` int(11) NOT NULL,
|
|
`response` int(11) NOT NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
|
ALTER TABLE `Categorize`
|
|
ADD PRIMARY KEY (`response`,`keyword`),
|
|
ADD KEY `keyword` (`keyword`);
|
|
ALTER TABLE `Form`
|
|
ADD PRIMARY KEY (`id`);
|
|
ALTER TABLE `Keyword`
|
|
ADD PRIMARY KEY (`id`);
|
|
ALTER TABLE `ListResponsesOfCandidate`
|
|
ADD PRIMARY KEY (`id`);
|
|
ALTER TABLE `PossibleResponse`
|
|
ADD PRIMARY KEY (`id`);
|
|
ALTER TABLE `Propose`
|
|
ADD PRIMARY KEY (`question`,`possibleResponse`),
|
|
ADD KEY `possibleResponse` (`possibleResponse`);
|
|
ALTER TABLE `Question`
|
|
ADD PRIMARY KEY (`id`),
|
|
ADD KEY `form` (`form`);
|
|
ALTER TABLE `Reference`
|
|
ADD PRIMARY KEY (`possibleResponse`,`keyword`),
|
|
ADD KEY `keyword` (`keyword`);
|
|
ALTER TABLE `Response`
|
|
ADD PRIMARY KEY (`id`);
|
|
ALTER TABLE `Submit`
|
|
ADD PRIMARY KEY (`responsesCandidate`,`response`),
|
|
ADD KEY `response` (`response`);
|
|
ALTER TABLE `Form`
|
|
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
|
ALTER TABLE `Keyword`
|
|
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
|
ALTER TABLE `ListResponsesOfCandidate`
|
|
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
|
ALTER TABLE `PossibleResponse`
|
|
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
|
ALTER TABLE `Question`
|
|
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
|
ALTER TABLE `Response`
|
|
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
|
ALTER TABLE `Categorize`
|
|
ADD CONSTRAINT `Categorize_ibfk_1` FOREIGN KEY (`keyword`) REFERENCES `Keyword` (`id`),
|
|
ADD CONSTRAINT `Categorize_ibfk_2` FOREIGN KEY (`response`) REFERENCES `Response` (`id`);
|
|
ALTER TABLE `Propose`
|
|
ADD CONSTRAINT `Propose_ibfk_1` FOREIGN KEY (`possibleResponse`) REFERENCES `PossibleResponse` (`id`),
|
|
ADD CONSTRAINT `Propose_ibfk_2` FOREIGN KEY (`question`) REFERENCES `Question` (`id`);
|
|
ALTER TABLE `Question`
|
|
ADD CONSTRAINT `Question_ibfk_1` FOREIGN KEY (`form`) REFERENCES `Form` (`id`);
|
|
ALTER TABLE `Reference`
|
|
ADD CONSTRAINT `Reference_ibfk_1` FOREIGN KEY (`keyword`) REFERENCES `Keyword` (`id`),
|
|
ADD CONSTRAINT `Reference_ibfk_2` FOREIGN KEY (`possibleResponse`) REFERENCES `PossibleResponse` (`id`);
|
|
ALTER TABLE `Submit`
|
|
ADD CONSTRAINT `Submit_ibfk_1` FOREIGN KEY (`response`) REFERENCES `Response` (`id`),
|
|
ADD CONSTRAINT `Submit_ibfk_2` FOREIGN KEY (`responsesCandidate`) REFERENCES `ListResponsesOfCandidate` (`id`);
|
|
COMMIT;';
|
|
|
|
|
|
$this->con->executeQuery($queryScript);
|
|
try {
|
|
$test = "SELECT * FROM Categorize;";
|
|
$this->con->executeQuery($test);
|
|
}catch (Exception $e){
|
|
echo $e->getMessage();
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|