From 7d64f7e1ea963ed5781ab6fb8fe3558f2dfb0b13 Mon Sep 17 00:00:00 2001 From: Yulia Yaschun Date: Tue, 11 Oct 2016 13:45:03 +0300 Subject: [PATCH] add schema.sql --- Vagrantfile | 2 +- dumps/students/s_07/schema.sql | 63 ++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 dumps/students/s_07/schema.sql diff --git a/Vagrantfile b/Vagrantfile index 60ac666..d49a217 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -5,7 +5,7 @@ Vagrant.configure(2) do |config| config.vm.box = "ubuntu/trusty64" config.vm.network "forwarded_port", guest: 80, host: 8080 config.vm.network "private_network", ip: "192.168.33.16" - config.vm.synced_folder "./", "/home/vagrant/", create: true, :nfs => true + config.vm.synced_folder "./", "/home/vagrant/", create: true config.vm.provider "virtualbox" do |vb| vb.memory = "512" end diff --git a/dumps/students/s_07/schema.sql b/dumps/students/s_07/schema.sql new file mode 100644 index 0000000..1b780c3 --- /dev/null +++ b/dumps/students/s_07/schema.sql @@ -0,0 +1,63 @@ +DROP TABLE IF EXISTS persons CASCADE; +DROP TABLE IF EXISTS agents CASCADE; +DROP TABLE IF EXISTS countries CASCADE; +DROP TABLE IF EXISTS persons_agents CASCADE; +DROP TABLE IF EXISTS cities CASCADE; +DROP TABLE IF EXISTS tours CASCADE; +DROP TABLE IF EXISTS persons_tours CASCADE; + +CREATE TABLE persons( + id SERIAL PRIMARY KEY, + first_name VARCHAR(50) NOT NULL, + last_name VARCHAR(50) NOT NULL, + code_name VARCHAR(20) NOT NULL, + born_year SMALLINT NOT NULL CONSTRAINT positive_age CHECK (born_year > 1900) AND (born_year < 2000) +); + +CREATE TABLE agents( + id SERIAL PRIMARY KEY, + first_name VARCHAR(50) NOT NULL, + last_name VARCHAR(50) NOT NULL, + code_name VARCHAR(20) NOT NULL, + online BOOLEAN, + experience SMALLINT NOT NULL CONSTRAINT positive_age CHECK (experience >= 0), + description TEXT +); + +CREATE TABLE persons_agents( + id SERIAL PRIMARY KEY, + person_id INT REFERENCES persons (id), + agent_id INT REFERENCES agents (id) +); + +CREATE TABLE countries( + id SERIAL PRIMARY KEY, + name VARCHAR(50) NOT NULL, + code VARCHAR(3) NOT NULL +); + +CREATE TABLE cities( + id SERIAL PRIMARY KEY, + country_id INT REFERENCES countries (id), + name VARCHAR(50) NOT NULL, + type VARCHAR(20) +); + +CREATE TABLE tours( + id SERIAL PRIMARY KEY, + name VARCHAR(50) NOT NULL, + city_from_id INT REFERENCES cities (id), + city_to_id INT REFERENCES cities (id), + price INT CONSTRAINT positive_area CHECK (price > 0), + departure_date TIMESTAMP WITH TIME ZONE, + ammount_of_night INT CONSTRAINT positive_area CHECK (ammount_of_night > 0) +); + +CREATE TABLE persons_tours( + id SERIAL PRIMARY KEY, + person_id INT REFERENCES persons (id), + tour_id INT REFERENCES tours (id) +); + + +