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

<?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();
}
}
}