Compare commits
10 Commits
302fd36c34
...
ea1e9c04ab
Author | SHA1 | Date |
---|---|---|
victoriavodyana | ea1e9c04ab | |
vodyana | 17c2cad47a | |
ІО-23 Шмуляр Олег | ba81f91189 | |
ІО-23 Шмуляр Олег | bf9e6364b9 | |
ІО-23 Шмуляр Олег | c941ac2022 | |
ІО-23 Шмуляр Олег | 2229e75644 | |
ІО-23 Шмуляр Олег | f71e97b6ff | |
Misha1tigr | 3679f641e5 | |
Misha1tigr | 5702bdce4d | |
Misha1tigr | c8787ad1f7 |
|
@ -0,0 +1,8 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/edu-dis-labs.iml" filepath="$PROJECT_DIR$/.idea/edu-dis-labs.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
|
@ -67,10 +67,6 @@ module.exports = {
|
|||
path:"/conclusion/"
|
||||
},
|
||||
|
||||
{
|
||||
title: 'API',
|
||||
path:"/api/"
|
||||
}
|
||||
|
||||
],
|
||||
sidebarDepth: 2,
|
||||
|
@ -102,8 +98,8 @@ module.exports = {
|
|||
// editLinkText: 'Ви можете покращити цю сторінку'
|
||||
|
||||
},
|
||||
title: 'Expertise',
|
||||
description: 'Лабораторні роботи з дисципліни "Розподілені інформаційні системи"',
|
||||
title: 'Xpertise',
|
||||
description: 'Лабораторні роботи з дисципліни "Організація баз даних"',
|
||||
configureWebpack: {
|
||||
resolve: {
|
||||
alias: {
|
||||
|
|
|
@ -6,24 +6,12 @@ actionLink: /intro/
|
|||
footer: "ECL 2.0 Licensed | Copyright © 2024 [Your Name]"
|
||||
---
|
||||
|
||||
**Виконали:**
|
||||
**Виконала:**
|
||||
|
||||
*студенти 2-го курсу, групи ІО-23:*
|
||||
|
||||
*Олег ШМУЛЯР [shmuliar1@ukr.net, [@dmytrofiot23](https://t.me/dmytrofiot23)]*
|
||||
|
||||
*Андрій БОДНАР [bodnarandrew123@gmail.com, [@andrux4](https://t.me/andrux4)]*
|
||||
|
||||
*Андрій ШВЕД [andreyfrog26@gmail.com, [@Rhinemann](https://t.me/Rhinemann)]*
|
||||
|
||||
*Євгеній ГОЛОВАТЕНКО [ievgeniigol@gmail.com, [@yevholova](https://t.me/yevholova)]*
|
||||
*студентка 2-го курсу, групи ІО-23:*
|
||||
|
||||
*Вікторія ВОДЯНА [vodyanayaviktoria@gmail.com, [@victoriavodyana](https://t.me/victoriavodyana)]*
|
||||
|
||||
*Михайло КОРБУТ [korbutmykhailo@gmail.com, [@misha1tigr](https://t.me/misha1tigr)]*
|
||||
|
||||
*Олександр ГУРАНЕЦЬ [bacant150@gmail.com, [@Bacant150](https://t.me/Bacant150)]*
|
||||
|
||||
|
||||
**Керівник**
|
||||
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
# Висновки
|
||||
|
||||
У висновках наводять оцінку отриманих результатів, можливі галузі його використання. Висновки повинні містити в собі коротку узагальнену оцінку результатів розробки, у
|
||||
тому числі і з погляду на їх технічно-економічну ефективність. Необхідно порівняти
|
||||
отримані результати усіх характеристик об’єкта проєктування із завданням і з основними показниками сучасних аналогічних об’єктів.
|
||||
У цьому проєкті була використана локальна база даних для зберігання інформації. Розроблена серверна частина надає RESTful-інтерфейс для доступу до цієї бази даних. Цей інтерфейс може використовуватися для взаємодії з таблицею питань (survey), що дозволяє здійснювати операції читання, запису, оновлення та видалення даних через HTTP-запити. Такий підхід забезпечує зручний та ефективний спосіб взаємодії з базою даних і відкриває широкі можливості для розвитку та розширення функціональності системи.
|
||||
|
||||
Необхідно вказати яке нове технічне рішення покладене в основу проєкту і у чому її
|
||||
переваги, що нового було запропоновано самим студентом.
|
||||
|
||||
На базі отриманих висновків можуть надаватися рекомендації по використанню розробки. Вони повинні
|
||||
мати конкретний характер і бути цілком підтверджені проєктом.
|
||||
Технічне рішення, що покладене в основу проєкту, полягає у використанні мови програмування Python та веб-фреймворку Flask для створення RESTful сервісу. Це дозволило забезпечити швидку реалізацію системи та забезпечити її продуктивність та масштабованість.
|
||||
|
||||
Отримана система дозволяє автоматизувати процес збору та аналізу відповідей, що значно знижує час та ресурси, необхідні для проведення таких опитувань. Завдяки використанню сучасних технологій, таких як Flask, система має високу продуктивність та може легко масштабуватися відповідно до потреб користувачів.
|
||||
|
||||
|
|
|
@ -115,3 +115,16 @@ Responce "0,*" --> "0,1" Account
|
|||
@enduml
|
||||
|
||||
</center>
|
||||
|
||||
## Реляційна схема
|
||||
|
||||
<center style="
|
||||
border-radius:4px;
|
||||
border: 1px solid #cfd7e6;
|
||||
box-shadow: 0 1px 3px 0 rgba(89,105,129,.05), 0 1px 1px 0 rgba(0,0,0,.025);
|
||||
padding: 1em;"
|
||||
>
|
||||
|
||||
![relational_schema](./relational_scheme.png)
|
||||
|
||||
</center>
|
||||
|
|
After Width: | Height: | Size: 49 KiB |
|
@ -1,3 +1,176 @@
|
|||
# Реалізація інформаційного та програмного забезпечення
|
||||
|
||||
## SQL-скрипт для створення та початкового наповнення бази даних
|
||||
|
||||
```sql
|
||||
-- MySQL Workbench Forward Engineering
|
||||
|
||||
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
|
||||
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
|
||||
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Schema mydb
|
||||
-- -----------------------------------------------------
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Schema mydb
|
||||
-- -----------------------------------------------------
|
||||
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
|
||||
USE `mydb` ;
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `mydb`.`Account`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `mydb`.`Account` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`username` CHAR(255) NOT NULL,
|
||||
`password` CHAR(255) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
|
||||
UNIQUE INDEX `username_UNIQUE` (`username` ASC) VISIBLE)
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `mydb`.`Survey`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `mydb`.`Survey` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`isPaused` TINYINT UNSIGNED NOT NULL,
|
||||
`isNamed` TINYINT UNSIGNED NOT NULL,
|
||||
`name` CHAR(255) NULL,
|
||||
`duration` CHAR(255) NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
|
||||
CONSTRAINT `fk_Survey_Account1`
|
||||
FOREIGN KEY (`id`)
|
||||
REFERENCES `mydb`.`Account` (`id`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION)
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `mydb`.`Question`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `mydb`.`Question` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`Text` CHAR(255) NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
|
||||
CONSTRAINT `fk_Question_Survey1`
|
||||
FOREIGN KEY (`id`)
|
||||
REFERENCES `mydb`.`Survey` (`id`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION)
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `mydb`.`Response`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `mydb`.`Response` (
|
||||
`id` INT UNSIGNED NULL AUTO_INCREMENT,
|
||||
`Value` VARCHAR(16384) NULL,
|
||||
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
|
||||
PRIMARY KEY (`id`),
|
||||
CONSTRAINT `fk_Response_Question`
|
||||
FOREIGN KEY (`id`)
|
||||
REFERENCES `mydb`.`Question` (`id`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION,
|
||||
CONSTRAINT `fk_Response_Account1`
|
||||
FOREIGN KEY (`id`)
|
||||
REFERENCES `mydb`.`Account` (`id`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION)
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `mydb`.`Link`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `mydb`.`Link` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`uses` INT NOT NULL,
|
||||
`responces` INT NOT NULL,
|
||||
`usageLimit` INT NULL,
|
||||
`responceLimit` INT NULL,
|
||||
`path` CHAR(32) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
CONSTRAINT `fk_Link_Survey1`
|
||||
FOREIGN KEY (`id`)
|
||||
REFERENCES `mydb`.`Survey` (`id`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION)
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
SET SQL_MODE=@OLD_SQL_MODE;
|
||||
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
|
||||
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
|
||||
```
|
||||
## RESTfull-сервіс для керування опитуваннями
|
||||
|
||||
Код серверу (Python, Flask) для таблиці "survey":
|
||||
```from flask import Flask, request, jsonify
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:1234@localhost/odb'
|
||||
db = SQLAlchemy(app)
|
||||
|
||||
class Survey(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
isPaused = db.Column(db.Boolean)
|
||||
isNamed = db.Column(db.Boolean)
|
||||
name = db.Column(db.String(255))
|
||||
duration = db.Column(db.Integer)
|
||||
account_id = db.Column(db.Integer)
|
||||
|
||||
def __repr__(self):
|
||||
return f"<Survey {self.name}>"
|
||||
|
||||
def as_dict(self):
|
||||
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
|
||||
|
||||
@app.route("/api/survey", methods=["GET", "POST"])
|
||||
def api_survey():
|
||||
if request.method == "GET":
|
||||
surveys = Survey.query.all()
|
||||
return jsonify([survey.as_dict() for survey in surveys])
|
||||
|
||||
elif request.method == "POST":
|
||||
data = request.json
|
||||
new_survey = Survey(isPaused=data['isPaused'], isNamed=data['isNamed'], name=data['name'],
|
||||
duration=data['duration'], account_id=data['account_id'])
|
||||
db.session.add(new_survey)
|
||||
db.session.commit()
|
||||
return jsonify({'success': True}), 201
|
||||
|
||||
@app.route("/api/survey/<int:survey_id>", methods=["GET", "PUT", "DELETE"])
|
||||
def api_survey_numbered(survey_id):
|
||||
survey = Survey.query.get_or_404(survey_id)
|
||||
|
||||
if request.method == "GET":
|
||||
return jsonify(survey.as_dict())
|
||||
|
||||
elif request.method == "PUT":
|
||||
data = request.json
|
||||
survey.isPaused = data['isPaused']
|
||||
survey.isNamed = data['isNamed']
|
||||
survey.name = data['name']
|
||||
survey.duration = data['duration']
|
||||
survey.account_id = data['account_id']
|
||||
db.session.commit()
|
||||
return jsonify({'success': True})
|
||||
|
||||
elif request.method == "DELETE":
|
||||
db.session.delete(survey)
|
||||
db.session.commit()
|
||||
return jsonify({'success': True})
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True)
|
||||
'''
|
|
@ -1,4 +1,34 @@
|
|||
# Тестування працездатності системи
|
||||
|
||||
*В цьому розділі необхідно вказати засоби тестування, навести вихідні коди тестів та результати тестування.*
|
||||
Тестування працездатності системи
|
||||
Для тестування системи використовувся додаток Postman
|
||||
|
||||
Запуск сервера:
|
||||
![alt text](image.png)
|
||||
|
||||
Метод POST
|
||||
POST Survey
|
||||
Запит та відповідь:
|
||||
![alt text](image-1.png)
|
||||
|
||||
Перевірка за допомогою GET:
|
||||
![![alt text](image-2.png)](image-2.png)
|
||||
|
||||
Метод PUT
|
||||
PUT Survey
|
||||
Запит та відповідь:
|
||||
![alt text](image-3.png)
|
||||
|
||||
Перевірка за допомогою GET:
|
||||
![alt text](image-4.png)
|
||||
|
||||
Метод DELETE
|
||||
DELETE Survey
|
||||
Запит та відповідь:
|
||||
![alt text](image-5.png)
|
||||
|
||||
Перевірка за допомогою GET:
|
||||
![alt text](image-6.png)
|
||||
|
||||
|
||||
|
||||
|
|
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 99 KiB |
After Width: | Height: | Size: 33 KiB |
|
@ -1,2 +1,3 @@
|
|||
# програмні коди
|
||||
В цьому розділі розміщені програмні коди.
|
||||
# JS-скрипти
|
||||
|
||||
В цьому розділі розміщені програмні коди javascript.
|
|
@ -0,0 +1,63 @@
|
|||
from flask import Flask, request, jsonify
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:1234@localhost/odb'
|
||||
db = SQLAlchemy(app)
|
||||
|
||||
class Survey(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
isPaused = db.Column(db.Boolean)
|
||||
isNamed = db.Column(db.Boolean)
|
||||
name = db.Column(db.String(255))
|
||||
duration = db.Column(db.Integer)
|
||||
account_id = db.Column(db.Integer)
|
||||
|
||||
def __repr__(self):
|
||||
return f"<Survey {self.name}>"
|
||||
|
||||
def as_dict(self):
|
||||
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
|
||||
|
||||
@app.route("/api/survey", methods=["GET", "POST"])
|
||||
def api_survey():
|
||||
if request.method == "GET":
|
||||
surveys = Survey.query.all()
|
||||
return jsonify([survey.as_dict() for survey in surveys])
|
||||
|
||||
elif request.method == "POST":
|
||||
data = request.json
|
||||
new_survey = Survey(isPaused=data['isPaused'], isNamed=data['isNamed'], name=data['name'],
|
||||
duration=data['duration'], account_id=data['account_id'])
|
||||
db.session.add(new_survey)
|
||||
db.session.commit()
|
||||
return jsonify({'success': True}), 201
|
||||
|
||||
@app.route("/api/survey/<int:survey_id>", methods=["GET", "PUT", "DELETE"])
|
||||
def api_survey_numbered(survey_id):
|
||||
survey = Survey.query.get_or_404(survey_id)
|
||||
|
||||
|
||||
if request.method == "GET":
|
||||
return jsonify(survey.as_dict())
|
||||
|
||||
elif request.method == "PUT":
|
||||
data = request.json
|
||||
|
||||
|
||||
survey.isPaused = data['isPaused']
|
||||
survey.isNamed = data['isNamed']
|
||||
survey.name = data['name']
|
||||
survey.duration = data['duration']
|
||||
survey.account_id = data['account_id']
|
||||
|
||||
db.session.commit()
|
||||
return jsonify({'success': True})
|
||||
|
||||
elif request.method == "DELETE":
|
||||
db.session.delete(survey)
|
||||
db.session.commit()
|
||||
return jsonify({'success': True})
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True)
|
|
@ -0,0 +1,3 @@
|
|||
# SQL-скрипти
|
||||
|
||||
В цьому розділі розміщені сирцеві коди для створення бази даних.
|
|
@ -0,0 +1,107 @@
|
|||
-- MySQL Workbench Forward Engineering
|
||||
|
||||
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
|
||||
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
|
||||
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Schema mydb
|
||||
-- -----------------------------------------------------
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Schema mydb
|
||||
-- -----------------------------------------------------
|
||||
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
|
||||
USE `mydb` ;
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `mydb`.`Account`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `mydb`.`Account` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`username` CHAR(255) NOT NULL,
|
||||
`password` CHAR(255) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
|
||||
UNIQUE INDEX `username_UNIQUE` (`username` ASC) VISIBLE)
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `mydb`.`Survey`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `mydb`.`Survey` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`isPaused` TINYINT UNSIGNED NOT NULL,
|
||||
`isNamed` TINYINT UNSIGNED NOT NULL,
|
||||
`name` CHAR(255) NULL,
|
||||
`duration` CHAR(255) NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
|
||||
CONSTRAINT `fk_Survey_Account1`
|
||||
FOREIGN KEY (`id`)
|
||||
REFERENCES `mydb`.`Account` (`id`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION)
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `mydb`.`Question`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `mydb`.`Question` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`Text` CHAR(255) NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
|
||||
CONSTRAINT `fk_Question_Survey1`
|
||||
FOREIGN KEY (`id`)
|
||||
REFERENCES `mydb`.`Survey` (`id`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION)
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `mydb`.`Response`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `mydb`.`Response` (
|
||||
`id` INT UNSIGNED NULL AUTO_INCREMENT,
|
||||
`Value` VARCHAR(16384) NULL,
|
||||
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
|
||||
PRIMARY KEY (`id`),
|
||||
CONSTRAINT `fk_Response_Question`
|
||||
FOREIGN KEY (`id`)
|
||||
REFERENCES `mydb`.`Question` (`id`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION,
|
||||
CONSTRAINT `fk_Response_Account1`
|
||||
FOREIGN KEY (`id`)
|
||||
REFERENCES `mydb`.`Account` (`id`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION)
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
-- -----------------------------------------------------
|
||||
-- Table `mydb`.`Link`
|
||||
-- -----------------------------------------------------
|
||||
CREATE TABLE IF NOT EXISTS `mydb`.`Link` (
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`uses` INT NOT NULL,
|
||||
`responces` INT NOT NULL,
|
||||
`usageLimit` INT NULL,
|
||||
`responceLimit` INT NULL,
|
||||
`path` CHAR(32) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
CONSTRAINT `fk_Link_Survey1`
|
||||
FOREIGN KEY (`id`)
|
||||
REFERENCES `mydb`.`Survey` (`id`)
|
||||
ON DELETE NO ACTION
|
||||
ON UPDATE NO ACTION)
|
||||
ENGINE = InnoDB;
|
||||
|
||||
|
||||
SET SQL_MODE=@OLD_SQL_MODE;
|
||||
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
|
||||
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
|